c语言试题 谭浩强

合集下载

《c语言程序设计》谭浩强浙师大练习题

《c语言程序设计》谭浩强浙师大练习题
C. p = s[0]D.p = &s[0]
(29)将程序的第18行改为“p = &s[1]”,运行程序,输出。
A. (Zhao, M)B. (Qian, M)
C. (Zhao, F)D. (Qian, F)
(30)将程序的第18行改为“p= s+2”,运行程序,输出。
A. (Qian, M)B. (Sun, M)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案.
【程序说明】
输入一个正整数n,然后输入n个单精度实数,用冒泡法将这些实数从低到高排序后输出。
【运行示例】
Enter n: 5
Enter 5 floats: 75.273 89.5 67.342 -98 5.41
After sorted: -98.00 5.41 67.34 75.28 89.50
试题6(每小题2分,共8分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include <stdio.h>
int a= 0;
void fun()
{int a = 1; //第4行
printf("%d,", a++);
}
void main()
{int i;
for(i = 1; i <= 2; i++)
【程序】
#include <stdio.h>
void main()
{int n, i, j;
float temp, a[100];
printf("Enter n(n>0): ");

C语言程序设计-谭浩强

C语言程序设计-谭浩强

C语⾔程序设计-谭浩强运输公司对⽤户计算运费。

路程(以s表⽰,单位为km)越远,每千⽶运费越低。

标准如下:s<250 没有折扣250≤s<500 2%折扣500≤s<1000 5%折扣1000≤s<2000 8%折扣2000≤S<3000 10%折扣3000≤s 15%折扣设每吨每千⽶货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为f=p*w*s*(1-d)编⼀程序⽤于计算总运费。

要求⽤switch语句来实现#include<stdio.h>int main(){int s,c;float p,d,w,f;scanf("%f%f%d", &p, &w, &s);if (s >= 3000)c = 12; //要使⽤⼀个整形变量来决定switch语句选择,不能直接赋值会造成下⾯运算错误elsec = s / 250;switch (c){case 0:d = 0; break;case 1:d = 0.02; break; //除以最低标准算有⼏倍余数不要case 2:case 3:d = 0.05; break;case 4:case 5:case 6:case 7:d = 0.08; break;case 8:case 9:case 10:case 11:d = 0.1; break;}f = p*w*s*(1 - d);printf("freight=%.2f\n", f);return 0;}。

C程序设计谭浩强第四版试卷试卷及答案

C程序设计谭浩强第四版试卷试卷及答案

C程序设计谭浩强第四版试卷试卷及答案Last updated on the afternoon of January 3, 2021一、单项选择题(20题,每题2分,共40分)1.一个C语言程序是由组成的。

A.主程序B.子程序C.函数D.过程2.判断char型变量c1是否为小写字母的最简单且正确的表达式为。

A.'a'<=c1<='z'B.(c1>=a)&&(c1<=z)C.('a'<=c1)||('z'>=c1)D.(c1>='a')&&(c1<='z')3.为了判断两个字符串s1和s2是否相等,应当使用。

(s1==s2)(s1=s2)(strcpy(s1,s2))(strcmp(s1,s2)==0)4.设a,b都是int型变量,则表达式:(a=2,b=5,a>b?a++:b++,a+b)的值为。

5.设x、y和t均为int型变量,则以下语句:t=x;x=y;y=t;的功能是。

A.把x和y按从大到小排列?B.把x和y按从小到大排列C.无确定结果?D.交换x和y中的值6.下面标识符中,合法的用户标识符为。

#Ad?7.循环语句while(!E);中的表达式!E等价于。

!=0?!=1?==0?==18.设有以下语句,则不是对a数组元素的正确引用,其中0≤i<10。

inta[10]={0,1,2,3,4,5,6,7,8,9};int*p=a;供选择的答案是:[p-5]B.*(&a[i])[i]D.*(a+i)9.若用数组名作为函数调用的实参,传递给形参的是。

A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数10.下面四段程序中,不是死循环的程序段是。

──────—───┬───────────────A.inti=100;k=0;while(1)do{++k;{i=i%100+1;}while(k>=0);if(i>100)───────────────break;s=3379;}│while(s);──────────┤s++;(;;);──────────┴───────────────11.在一个文件中定义的全局变量的作用域为。

谭浩强c语言试题及答案解析

谭浩强c语言试题及答案解析

谭浩强c语言试题及答案解析1. 选择题A. 以下哪个选项是C语言中合法的变量名?A) 123abcB) intC) _myVarD) my-var答案:C2. 填空题A. 在C语言中,定义一个整型变量的关键字是______。

答案:int3. 判断题A. C语言中,数组的索引是从0开始的。

答案:正确4. 简答题A. 请简述C语言中指针的概念。

答案:指针是C语言中的一种数据类型,它存储了另一个变量的内存地址。

通过指针,程序可以间接访问和操作变量。

5. 编程题A. 编写一个C语言程序,实现求两个整数的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和是:%d\n", sum); return 0;}```6. 阅读程序题A. 阅读以下C语言程序,并回答问题:```c#include <stdio.h>int main() {int a = 10, b = 20;printf("%d\n", a + b);return 0;}```问题:程序的输出结果是什么?答案:程序的输出结果是30。

7. 改错题A. 以下C语言程序有错误,请找出并改正。

```c#include <stdio.h>int main() {int a = 5;printf("a的值是:%d", a);return 0;}```错误:printf函数中缺少换行符。

改正:```c#include <stdio.h>int main() {int a = 5;printf("a的值是:%d\n", a);return 0;}```8. 综合题A. 请编写一个C语言程序,实现以下功能:1. 从键盘输入一个字符串。

谭浩强C语言试题库(完整版)

谭浩强C语言试题库(完整版)

谭浩强C语言试题库(完整版)谭浩强C语言试题库一、单项选择第一章 C语言概述(1) 一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束.B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束.C、本程序的MAIN函数开始,到本程序的最后一个函数结束.D、本程序文件的第一个函数开始,到本程序的MAIN函数结束.(2) 以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面.B、 C程序的每行中只能写一条语句.C、 C语言本身没有输入输出语句.D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误.(3) C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面.B、必须在系统调用的库函数的后面C、可以在任意位置.D、必须在最后面(4) 一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5) 以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、 C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1) 若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x =( i=4, j=16, k=32)A、4B、16C、32D、52(2) 下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、 if, struct, type(3) 下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4) 若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5) 已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf 函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、sc anf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4) 以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5) 若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”); else printf(“$ $ $\n”); }以上程序 .A) 有语法错误不能通过编译B) 可以通过编译但不能直接通过连接C) 输出* * *D) 输出$ $ $(4)以下程序的运行结果是 .main(){int m=5;if(m++>5)printf(“%d\n”,m);else printf(“%d\n”,m——);}A) 4B) 5C) 6D) 7(5) 为了避免在嵌套的条件语句中if-else中产生二义性,c语言规定:else子句总是与相配对.A)缩排位置相同的ifB)其之前最近的ifC)其之后最近的ifD)同一行上的if第五章循环控制(1)设有程序段int k=10while (k=0) k=k-1则下面描叙正确的是 .A) while (k=0) k=k-1;B) 循环是无限循环C) 循环体语句一次也不执行D) 循环体语句执行一次(2)下面程序段的运行结果是 . int n=0;while(n++<=2); printf(“%d”,n);A) 2B) 3C) 4D) 有语法错(3)C语言中while和do-while循环的主要区别是 .A) do-while的循环体至少无条件执行一次B) while 的循环控制条件比do-while的循环控制条件严格C) do-while允许从外部转到循环体内D) do-while允许从外部转到循环体内(4)以下能正确计算1*2*3*…*10的程序段是 .A) do {i=1;s=1;s=s*i;i++;}while(I<=10);B) do {i=1;s=0;s=s*i;i++;}while(I<=10);C) i=1;s=1;do {s=s*i;i++;}while(I<=10);D) i=1;s=0;do {s=s*i;i++;}while(I<=10);第六章数组(1)在c语言中,引用数组元素时,其数组下标的数据类型允许是____.A) 整型常量B) 整型表达式C) 整型常量或整型表达式D) 任何类型的表达式(2)以下能对二维数组a进行正确初始化的语句是____.A) int a[2][ ]={{1,0,1},{5,2,3,}};B) int a[ ][3]={{1,2,3},{4,5,6}};C) int a[2][4]={1,2,3,},{4,5},{6}};D) int a[ ][3]={{1,0,1},{},{1,1}};)(3)若有说明:int a[3][4]={0};则下面正确的叙述是____.A) 只有元素a[0][0]可得到初值0B) 此说明语句不正确C) 数组a中各元素都可得到初值,但其值不一定为0D) 数组a中每个元素均可得到初值0(4)下面程序___(每行程序前面的数字表示行号).1 main()2 {3 float a[10]={0};4 int i5 for(i=0;i<3;i++) scanf(“%d”,&a[i];6 for(i=1;i<10;i++) a[0]=a[0]+a{i};7 printf(“%f\n”,a[0]);8 }A) 没有错误B) 第3行有错误C) 第5行有错误D) 第7行有错误(5)若二维数组a有m列,则计算机一元素a[i][j]在数组中位置的公式为____.(假设a[0][0]位于数组的第一个位置上.)A) i*m+jB) j*m+iC) i*m+j-1D) i*m+j+1第七章函数(1)以下正确的函数定义形式是 .A)double fun(int x,int y)C) double fun(int x;int y)D) double fun(int x,int y)E) double fun(int x,y);(2) 以下正确的函数形式是 .A) double fun(int x,int y){z=x+y; return z;}B) fun(int x,y){int z;return z;}C) fun(x,y){int x,y; double z;z=x+y;return z;}D) double fun(int x,int y){double z;z=x+y;return z;}(3) C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传给形参,再由形参传回给实参D)传递方式(4)C语言允许函数值型缺省定义,此时该函数值隐含的类型是 .A)float型B)int型C)long型D)double型(5)下面函数调用语句含有实参的个数为. func((exp1,exp2),(exp3,exp4,exp5));A)1B)2C)4D)5第八章编译预处理命令(1)请读程序:#define ADD(x) x+xmain(){int m=1,n=2,k=3;int sum=ADD(m+n)*k;printf(“sum=%d”,sum);}上面程序的运行结果是 .A) sum=9B) sum=10C) sum=12D) sum=18(2) 以下程序的运行结果是 . #define MIN(x,y) (x)<(y)? (x)+(y) main(){int I=10,j=15,k;k=10*MIN(I,j); printf(“%d\n”,k);。

《c语言程序设计》谭浩强清华大学习题答案

《c语言程序设计》谭浩强清华大学习题答案
c语言程序设计谭浩强清华大学习题答案c语言答案谭浩强c语言课后习题答案c语言习题及答案c语言练习题及答案c语言习题集及答案c语言习题答案谭浩强c语言程序设计c语言谭浩强谭浩强c语言第四版
2.6 aabb (8)cc (7)AN
(8)abc
2.8 main() {int c1,c2;
ww
2.7 main() {char c1='C',c2='h',c3='i',c4='n',c5='a'; c1+=4, c2+=4, c3+=4, c4+=4, c5+=4; printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5); }
.k h
da w='a',c2='b',c3='c',c4='\101',c5='\116'; printf("a%c b%c\tc%c\tabc\n",c1,c2,c3); printf("\t\b%c %c\n",c4,c5); 解:程序的运行结果为: aabb cc abc AN 3.7将"China"译成密码.密码规律:用原来的字母后面第4个字母代替原来的字母, 例如,字母"A"后面第4个字母是"E",用"E"代替"A".因此,"China"应译为"Glmre". 请编一程序,用赋初值的议程使c1,c2,c3,c4,c5分别变成'G','1','m','r','e',并 输出. main() {char c1="C",c2="h",c3="i",c4='n',c5='a'; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 3.8例3.6能否改成如下: #include<stdio.h> void main() { int c1,c2;(原为 char c1,c2) c1=97; c2=98; printf("%c%c\n",c1,c2); printf("%d%d\n",c1,c2); } 解:可以.因为在可输出的字符范围内,用整型和字符型作用相同. 3.9求下面算术表达式的值. (1)x+a%3*(int)(x+y)%2/4=2.5(x=2.5,a=7,y=4.7) (2)(float)(a+b)/2+(int)x%(int)y=3.5(设a=2,b=3,x=3.5,y=2.5) 3.10写出下面程序的运行结果: #include<stdio.h> void main() { int i,j,m,n; i=8; j=10; m=++i; n=j++; printf("%d,%d,%d,%d\n",i,j,m,n); } 解:结果: 9,11,9,10 第4章 4.4.a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b'.想得 到以下的输出格式和结果,请写出程序要求输出的结果如下: a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000

谭浩强版c语言期末考试

谭浩强版c语言期末考试

一选择题(24分,每小题2分)1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。

A 存放读入数据项的存储区B 存放读入数据的地址或指向此地址的指针C 一个指向所读文件的文件指针D 一个整形变量,代表要读入的数据项总数2.以下程序的输出结果为()。

main( ){int i=010,j=10;printf("%d,%d\n",i++,j--);}A 11,9B 9,10C 8,10D 9,93.设a为int型变量,执行下列赋值语句后,a的取值分别是()。

a=125.534;a=20.0/3;a=(int)125.521%4;a=5<<2;A 125,6,31,1B 125,6,1,20C 125,6.666666,31,20D 125.534,6.666666,2,204.设i和k都是int类型,则for循环语句()。

for(i=0,k=-1;k=1;i++,k++)printf("****\n");A 循环结束的条件不合法B 循环体一次也不执行C 循环体只执行一次D 是无限循环5.以下程序的输出结果为()。

main( ){char c;int i;for(i=65;i<68;i++){c=i+32;switch(c){case 'a':case 'b':case 'c':printf("%c,",c);break;default:printf("end");}}}A a,b,c,endB a,a,a,endC a,a,a,D a,b,c,6.函数调用语句:fseek(fp,-10L,2);的含义是()。

A 将文件位置指针从文件末尾处向文件头的方向移动10个字节B 将文件位置指针从当前位置向文件头的方向移动10个字节C 将文件位置指针从当前位置向文件末尾方向移动10个字节D 将文件位置指针移到距离文件头10个字节处7.以下程序的输出结果为()。

c语言谭浩强经典习题答案(考试复习题、计算机等级考试复习)

c语言谭浩强经典习题答案(考试复习题、计算机等级考试复习)

D4Z4#include <stdio.h>void main(){int a=3,b=4,c=5;float x=1.2,y=2.4,z=-3.6;unsigned int u=51274;long n=128765;char c1='a',c2='b';printf("a=%2d b=%2d c=%2d\n",a,b,c);printf("x=%f,y=%f,z=%f\n",x,y,z);printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);printf("u=%6u n=%9ld\n",u,n);printf("c1=\"%c\" or %d(ASCII)\n",c1,c1);printf("c2=\"%c\" or %d(ASCII)\n",c2-32,c2);}D4Z8#include <stdio.h>#define PI 3.1415926void main(){float r,h;float c,s,s1,v,v1;scanf("%f,%f",&r,&h);c=2*PI*r;s=PI*r*r;s1=4*PI*r*r;v=4.0/3*PI*r*r*r;v1=s*h;printf("c=%.2f,s=%.2f,s1=%.2f,v=%.2f,v1=%.2f\n",c,s,s1,v,v1); }D5Z5#include <stdio.h>void main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if(x>=10)y=3*x-11;elsey=2*x-1;printf("y=%d\n",y);}D5Z6#include <stdio.h>void main(){int d;scanf("%d",&d);if(d>=0&&d<=100){if(d>=90)printf("A");else if(d>=80)printf("B");else if(d>=70)printf("C");else if(d>=60)printf("D");elseprintf("E");}elseprintf("input error!!!\n"); }D5Z7#include <stdio.h>void main(){long d;int g,s,b,q,w;scanf("%ld",&d);w=d/10000;q=d%10000/1000;b=d%1000/100;s=d%100/10;g=d%10;if(w>0){printf("5\n");printf("%d,%d,%d,%d,%d\n",w,q,b,s,g);printf("%d,%d,%d,%d,%d\n",g,s,b,q,w);}else if(q>0){printf("4\n");printf("%d,%d,%d,%d\n",q,b,s,g);printf("%d,%d,%d,%d\n",g,s,b,q);}else if(b>0){printf("3\n");printf("%d,%d,%d\n",b,s,g);printf("%d,%d,%d\n",g,s,b);}else if(s>0){printf("2\n");printf("%d,%d\n",s,g);printf("%d,%d\n",g,s);}else if(g>=0){printf("1\n");printf("%d\n",g);printf("%d\n",g);}}D6Z2#include <stdio.h>void main(){char c;int WordCount=0,BlankCount=0,NumberCount=0,OtherCount=0;while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>='A'&&c<='Z')WordCount++;else if(c==' ')BlankCount++;else if(c>='0'&&c<='9')NumberCount++;elseOtherCount++;}printf("WordCount=%d,BlankCount=%d,NumberCount=%d,OtherCount=%d\n",Word Count,BlankCount,NumberCount,OtherCount);}D6Z4#include <stdio.h>void main(){double jc=1,sum=0;int i;for(i=1;i<=20;i++){jc*=i;sum+=jc;}printf("%lf\n",sum);}D6Z6#include <stdio.h>void main(){int i,j,k;for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++)if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)printf("%d\n",i*100+j*10+k);}D6Z8#include <stdio.h>void main(){int fz=2,fm=1,i,t;float sum=0;for(i=0;i<20;i++){sum+=fz*1.0/fm;t=fz;fz=fz+fm;fm=t;}printf("%f\n",sum);}12.28.c++d7zsy2#include <stdio.h>main(){int a[11]={10,20,30,40,50,60,70,80,90,100},n,i,j,t; scanf("%d",&n);for(i=0;i<10;i++)if(n<a[i])break;for(j=9;j>=i;j--)a[j+1]=a[j];a[i]=n;for(i=0;i<11;i++)printf("%3d ",a[i]);}d7zsy3#include <stdio.h>main(){int a[4][4],b[4][4],c[4][4]={0};int i,j,k;printf("input A matrix:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);printf("input B matrix:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&b[i][j]);for(i=0;i<4;i++)for(k=0;k<4;k++)for(j=0;j<4;j++)c[i][k]+=a[i][j]*b[j][k];printf("Output C matrix:\n");for(i=0;i<4;i++){for(j=0;j<4;j++)printf("%3d ",c[i][j]);printf("\n");}}D7ZSY5#include <stdio.h>main(){inta[10][10]={{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0}}; int i,j;for(i=1;i<9;i++)for(j=1;j<9;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<9;i++){for(j=0;j<=i;j++)printf("%4d",a[i][j]);printf("\n");}}D7ZSY13#include <stdio.h>#include <string.h>main(){char c1[20],c2[20],c3[40],i,k;gets(c1);gets(c2);for(i=0;c1[i]!=0;i++)c3[i]=c1[i];for(k=0;c2[k]!=0;k++)c3[i++]=c2[k];c3[i]=0;puts(c3);}D7ZSY15#include <stdio.h>#include <string.h>main(){char s1[80],s2[80],i;gets(s2);for(i=0;s2[i]!=0;i++)s1[i]=s2[i];s1[i]=0;puts(s1);}D8ZSY1#include <graphics.h>#include <conio.h>#include <dos.h>#include <math.h>#define PI 3.1415926void DrawFlower(int color,int sx,int sy,int r,int c,float d) {double p,st,x,y;int px,py,i;setcolor(color);for(st=0;st<=2*PI;st+=0.01){p=cos(st*c);x=p*cos(st+d);y=p*sin(st+d);px=sx+x*r;py=sy-y*r;putpixel(px,py);}}void main(){int gdriver,gmode;int i=1;float d;gdriver=VGA;gmode=VGAHI;initgraph(&gdriver,&gmode,"c:\\tc3");for(d=0;d<=2*PI;d+=0.02){DrawFlower(i%14+1,320,240,i*9%200,3,d);delay(50);DrawFlower(0,320,240,i*9,3,d);i+=2;}getch();closegraph();}d8zsy2#include <stdio.h>int findday(int year,int month,int day){int i,sum=0;int MonDay[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if((year%4==0&&year%100!=0)||year%400==0)MonDay[1]++;for(i=0;i<month-1;i++)sum+=MonDay[i];sum=sum+day;return sum;}main(){int year,month,day;int sum;scanf("%d-%d-%d",&year,&month,&day);sum=findday(year,month,day);printf("sum=%d\n",sum);}d8zsy3#include <stdio.h>void HexToDec(){int c;scanf("%x",&c);printf("%d",c);}main(){HexToDec();d8zsy5#include <stdio.h>#include <string.h>void Ver(char c[]){int i,t,l;l=strlen(c);for(i=0;i<=l-1-i;i++){t=c[i];c[i]=c[l-1-i];c[l-1-i]=t;}}main(){char a[80];gets(a);Ver(a);puts(a);}d8zsy7#include <stdio.h>#include <string.h>void find(char c[],char d[]){int i,l,j=0;l=strlen(c);for(i=0;i<l;i++){if(c[i]=='a'||c[i]=='o'||c[i]=='e'||c[i]=='i'||c[i]=='u'||c[i]=='A'||c[i]== 'O'||c[i]=='E'||c[i]=='I'||c[i]=='U'){d[j++]=c[i];}}d[j]=0;main(){char a[80],b[80];gets(a);find(a,b);puts(b);}d8zsy10#include <stdio.h>#include <string.h>void findmaxlen(char c[],char d[]){int i,l,j,k=0,lmax=0;l=strlen(c);for(i=0;i<l;i++){if(c[i]>='a'&&c[i]<='z'||c[i]>='A'&&c[i]<='Z') {k++;if(lmax<k){lmax=k;for(j=0;j<k;j++)d[j]=c[i-k+1+j];d[j]=0;}}elsek=0;}}main(){char a[80],b[80];gets(a);findmaxlen(a,b);puts(b);}d10zsy1#include <stdio.h>void input(int *p){int i;for(i=0;i<10;i++)scanf("%d",p++);}void output(int *p){int i;for(i=0;i<10;i++)printf("%d ",*p++); }void xch(int *p){int i,max,j=0,t;max=*p;for(i=1;i<10;i++){if(max<*(p+i)){max=*(p+i);j=i;}}t=p[j];p[j]=p[9];p[9]=t;}main(){int a[10];input(a);xch(a);output(a);}d10zsy2#include <stdio.h>#include <math.h>void findarea(double *a,double *b,double *c,double *area) {double s;s=0.5*(*a+*b+*c);*area=sqrt(s*(s-*a)*(s-*b)*(s-*c));}main(){double a,b,c,area;scanf("%lf,%lf,%lf",&a,&b,&c);findarea(&a,&b,&c,&area);printf("area=%lf\n",area);}d10zsy3#include <stdio.h>#include <string.h>void StrCopy(char *from,char *to,int start){while(*(from+start))*to++=*((from++)+start);*to=0;}main(){char c1[80],c2[80];int s;gets(c1);scanf("%d",&s);StrCopy(c1,c2,s);puts(c2);}d10zsy4#include <stdio.h>void MatMul(int (*p1)[3],int (*p2)[3],int (*p3)[3],int n) {int *a,*b,*c,i,j,k;a=*p1;b=*p2;c=*p3;for(i=0;i<n;i++)for(k=0;k<n;k++)for(j=0;j<n;j++)*(c+i*n+k)+=*(a+i*n+j) * *(b+j*n+k); }main(){int a[4][4],b[4][4],c[4][4]={0};int i,j,k;printf("input A matrix:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);printf("input B matrix:\n");for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&b[i][j]);MatMul(a,b,c,4);printf("Output C matrix:\n");for(i=0;i<4;i++){for(j=0;j<4;j++)printf("%3d ",c[i][j]);printf("\n");}}d10zsy16#include <stdio.h>#include <string.h>void findNum(char *p1,char *p2){for(;*p1!=0;p1++)if(*p1>='0'&&*p1<='9')*p2++=*p1;*p2=0;}main(){char c1[80],c2[80];gets(c1);findNum(c1,c2);puts(c2);}期末复习题(1) 执行下面的程序段后,变量k中的值为A) 不定值 B) 33 C) 30 D) 10int k=3, s[2];s[0]=k; k=s[1]*10;(2) 若已定义:int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;其中0≤i≤9, 则对a数组元素不正确的引用上A) a[p-a] B) *(&a[i]) C) p[i] D) a[10](3) 下列程序执行后的输出结果是A) 6 B) 7 C) 8 D) 9void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d \n,b[0]);}(4) 下列程序执行后的输出结果是A) 3 B) 6 C) 9 D) 随机数main(){ int a[3][3], *p,i;p=&a[0][0];for(i=p; i<9; i++) p[i]=i+1;printf("%d \n",a[1][2]);}(5) 设有数组定义: char array [ ]="China"; 则数组array所占的空间为A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节(6) 下列程序的输出结果是A) 4 B) 6 C) 8 D) 10int b=2;int func(int *a){ b += *a; return(b);}main(){ int a=2, res=2;res += func(&a);printf("%d \n",res);}(7) 若有以下调用语句,则不正确的fun函数的首部是A) void fun(int m, int x[]) B) void fun(int s, int h[41]) C) void fun(int p, int *s) D) void fun(int n, int a)main(){ …int a[50],n;…fun(n, &a[9]);…}(8) 下列程序执行后的输出结果是A) you&me B) you C) me D) errmain(){ char arr[2][4];strcpy(arr,"you"); strcpy(arr[1],"me");arr[0][3]='&';printf("%s \n",arr);}(9) 下列程序执行后的输出结果是A) hello B) hel C) hlo D) hlmvoid func1(int i);void func2(int i);char st[]="hello,friend!";void func1(int i){ printf("%c",st[i]);if(i<3){i+=2;func2(i);}}void func2(int i){ printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){ int i=0; func1(i); printf("\n");}(10) 执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是A) 123,456,789 B) 1,456,789C) 1,23,456,789 D) 1,23,456main(){ char s[100]; int c, i;scanf("%c",&c); scanf("%d",&i); scanf("%s",s);printf("%c,%d,%s \n",c,i,s);}(11) 下面函数用来求出两个整数之和,并通过形参传回两数相加之和值,请填空。

(完整版)C语言练习题(谭浩强第四版)..附有答案

(完整版)C语言练习题(谭浩强第四版)..附有答案

一、选择题1、一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()A、任意B、第一个函数必须是主函数,其他函数任意C、必须完全按照执行的顺序排列D、其他函数可以任意,主函数必须在最后2、下列四个叙述中,正确的是:( )A、C程序中的所有字母都必须小写B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写3、下列四个叙述中,错误的是:( )A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以有多个函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数4、下面不是C语言合法标识符的是:()A、abcB、5nC、_4mD、x35、以下叙述不正确的是:( )A. 分号是C语句的必要组成部分B。

C程序的注释可以写在语句的后面C。

函数是C程序的基本单位D。

主函数的名字不一定非用main来表示6、C语言中允许的基本数据类型包括:( )A. 整型、实型、逻辑型B. 整型、实型、字符型C。

整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型7、C语言中能用八进制表示的数据类型为:( )A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、下列属于C语言合法的字符常数是:( )A、’\97’B、”A”C、’\t’D、”\0”9、在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )A、char<int〈=long int 〈=float〈doubleB、char=int<long int 〈=float〈doubleC、char〈int<long int=float=doubleD、char=int=<long int <=float<double10、若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n",c2-c1,c2-‘a’+’A');则输出结果是:()A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定11、以下合法的赋值语句是:( )A、x=y=100B、d-—;C、x + yD、c = int(a+b);12、在以下一组运算符中,优先级最高的是:()A、〈=B、==C、%D、&&13、下列能正确表示a≥10或a≤0的关系表达式是:()A、a〉=10 or a〈=0B、a<=10 || a>=0C、a〉=10 || a〈=0D、a〉=10 && a<=014、下列只有当整数x为奇数时,其值为“真"的表达式是:( )A、x%2==0B、!(x%2==0)C、(x—x/2*2)==0D、!(x%2)15、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A、1 0< a < 15B、!(a〈=10 || a〉=15)C、a>10 && a〈15D、!(a<=10) && !(a>=15)16、已知x=43, ch='A',y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:()A、0B、语法错C、1D、“假”17、表达式17%4 /8的值为:( )A、0B、1C、2D、318、一个可执行的C程序的开始执行点是:()A. 程序中的第一个语句 B。

谭浩强C语言程序设计习题集

谭浩强C语言程序设计习题集

目录重要次重要重复或欲删除基础第一章 C语言概述1.1 选择题1.2 填空题第二章数据类型、运算符与表达式2.1 选择题2.2 填空题第三章最简单的C程序设计3.1 选择题3.2 填空题第四章逻辑运算和判断选取控制4.1 选择题4.2 填空题4.3 编程题第五章循环控制5.1 选择题5.2 填空题5.3 编程题第六章数组6.1 选择题6.2 填空题6.3 编程题第七章函数7.1 选择题7.2 填空题7.3 编程题第八章编译预处理8.1 选择题8.2 填空题8.3 编程题第九章指针9.1 选择题9.2 填空题第一章 C语言概述1.1 选择题*1.1一个C程序的执行是从。

A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案:A参考分析:C语言总是从main函数开始,main函数结束。

但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。

如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。

*1.2以下叙述正确的是。

A)在C程序中,main函数必须位于程序的最前面B)在C程序的每一行只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误参考答案:C参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。

因此,如果注释中存在错误,系统是不可能发现的。

另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。

1.3以下叙述不正确的是。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面参考答案:D参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。

C语言程序设计 第三版 部分习题 (谭浩强 著) 清华大学出版社 课后答案

C语言程序设计 第三版 部分习题 (谭浩强 著) 清华大学出版社 课后答案

【习题1】一、简答题(在课本中寻找答案,略)1.1 C程序的基本结构包括哪些内容?1.2 如何定义标识符?1.3 输入格式、输出格式的组成包括哪些内容?1.4 C语言函数分为哪两类?1.5 计算表达式的值应该考虑哪些方面?1.6 上机调试程序的步骤如何?二、判断并改错1.7 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。

错误:main函数可以放在程序的任何位置。

并不限定在程序的开头。

1.8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

错误:不可以交叉出现,数据说明部分在执行语句部分的前面。

1.9 编辑与编译不是一回事。

错误:不是一回事。

编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。

1.10 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。

正确1.11 注释内容太多会影响程序的执行效率。

错误:不会影响程序的执行效率。

因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。

1.12 所有的数学公式可以直接出现在源程序中。

错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。

三、编程题1.13 在屏幕上输出自己名字的拼音。

提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用printf()函数。

1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。

提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f1.15 输入两个整数,输出其中最大者。

提示:模仿例1.31.16 输入三个整数,输出其中最小者。

提示: min(min(a,b),c);【习题2】一、简答题(在课本中寻找答案,略)2.1 常量与变量的区别?2.2 C语言中的标识符的定义规则?2.3 变量为什么要“先定义,后使用”?2.4 字符常量'a'与字符串常量"a"有何区别?2.5 大小写字母转换的规则是什么?2.6 变量的具有哪三种属性?二、单项选择题2.7 C语言中,int型数据在内存中的存储形式是(D)。

C语言程序设计基础(谭浩强)习题

C语言程序设计基础(谭浩强)习题

第一章 C 语言概述一、选择题1.C 语言规定,必须用作为主函数名。

A)Function B)include C)main D)stdio2.一个 C 程序可以包含任意多个不同名的函数,但有且仅有一个,一个 C 程序总是从开始执行。

A)过程 B)主函数 C)函数 D)include3.是C 程序的基本构成单位。

A)函数 B)函数和过程 C)超文本过程 D)子程序4.下列说法正确的是。

A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可B)一个函数的函数体必须要有执行部分,可以没有变量定义C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数D)以上都不对5.下列说法正确的是。

A)main 函数必须放在C 程序的开头B)main 函数必须放在C 程序的最后C)main函数可以放在C程序中间部分,执行C程序时是从程序开头执行的D)main 函数可以放在C 程序中间部分,执行C 程序时是从main 函数开始的6.下列说法正确的是。

A)在执行C 程序时不是从main 函数开始的B)C 程序书写格式严格限制,一行内必须写一个语句C)C 程序书写格式自由,一个语句可以分写在多行上D)C 程序书写格式严格限制,一行内必须写一个语句,并要有行号7.在 C 语言中,每个语句和数据定义是用结束。

A)句号 B)逗号 C)分号 D)括号8.下列字符串是合法的自定义标识符的是。

A)_HJ B)9_student C)int D)LINE 19.不是C 语言提供的合法关键字。

A)switch B)print C)case D)default10.C 语言提供的合法关键字是。

A)break B)print C)funiton D)end11.C 语言提供的合法关键字是。

A)continue B)procedure C)begin D)append二、填空题1.一个 C 程序至少包含一个,即。

2.一个函数由两部分组成,它们是和。

新版谭浩强C语言新版习题答案

新版谭浩强C语言新版习题答案

谭浩强C语言新版习题答案第一章一、单项选择题①②①③②④④二、填充题 1、机器的、问题的2 、源、解释、编译、目标3、“\”4、常量、变量、运算符、函数调用、表达式、保留字5、数据定义语句、赋值语句、函数调用语句、表达式语句、流程控制语句、复合语句、空语句、其它语句6、1、主、主7、/*、*/ >第二章一、单项选择题②①②①①③③③②④③①①③④①③④④③④④②④二、填充题1、2、12、非零、零、1、03、#define 符号常量常量5、unsigned int、double、char6、存储类别数据类型变量=初值7、++、&&8、9、1、010、111、12、①5 ②5 ③213、x>20&&x<30||x<-10014、a/(b*c)15、算术、关系、逻辑、赋值、逗号、条件第三章一、单项选择题②③②④③①②③②①①④③④②二、填充题1、顺序、循环2、###a=2b,b=13,c=193、if(a < = b){x=1;printf("###x=%d\n",x);}{y=2;printf("***y=%d\n",y);}4、(x%i= =0)三、程序分析题1、10,4,32、-13、852四、程序设计题1、#include ""void main(){float F,C;printf("请输入华氏温度:");scanf("%f",&F);C=5*(F-32)/9;printf("相应的摄氏温度是:%f\n",C);}2、编一个程序,输入一个整数,输出其符号(若≥0,输出1;若<0,输出-1)。

#include ""void main()int num,sign;scanf("%d",&num);if(num>=0)sign=1;elsesign=-1;printf("%d\n",sign);}3、#include ""void main(){float x,y;printf("请输入x的值:"); scanf("%f",&x);if(x < = 1) y=x;else if(x<10) y=2*x-1;else y=3*x-11;printf("y的值是:%f\n",y); }#include ""void main(){float a,b,c,min;scanf("%f,%f,%f",&a,&b,&c);min=a < b?a:b;min=min < c?min:c;printf("这三个数的最小数是:%f\n",min);}5、编一个程序,求出所有各位数字的立方和等于1099的3位整数。

谭浩强C语言程序设计习题集

谭浩强C语言程序设计习题集

目录重要次重要重复或欲删除基础第一章C语言概述1.1 选择题1.2 填空题第二章数据类型、运算符与表达式2.1 选择题2.2 填空题第三章最简单的C程序设计3.1 选择题3.2 填空题第四章逻辑运算和判断选取控制4.1 选择题4.2 填空题4.3 编程题第五章循环控制5.1 选择题5.2 填空题5.3 编程题第六章数组6.1 选择题6.2 填空题6.3 编程题第七章函数7.1 选择题7.2 填空题7.3 编程题第八章编译预处理8.1 选择题8.2 填空题8.3 编程题第九章指针9.1 选择题9.2 填空题第一章C语言概述1.1 选择题*1.1一个C程序的执行是从。

A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案:A参考分析:C语言总是从main函数开始,main函数结束。

但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。

如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。

*1.2以下叙述正确的是。

A)在C程序中,main函数必须位于程序的最前面B)在C程序的每一行只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误参考答案:C参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。

因此,如果注释中存在错误,系统是不可能发现的。

另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。

1.3以下叙述不正确的是。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面参考答案:D参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。

(完整)c语言习题谭浩强有参考答案版

(完整)c语言习题谭浩强有参考答案版

1.若有以下定义和语句:int a[4]={0,1,2,3},*p;p=&a[2];则++(*p)的值是___3__。

2.与表达式a|=b等价的另一书写形式是_a=a|b________。

3。

链表中的每个结点都是_结构体________类型数据。

4.设有语句:char *a="I_love_china!”;a=a+2;则执行printf(“%s\n”,a);的输出结果是___love_china!__________。

5.若有宏义:#define f(x) x*x 则当a=3时,执行f(a-1)的值是____—1___。

6。

有以下函数调用语句,请问函数fun1到底有___4____个参数.fun1(x,(y,z),10,fun2((x-1,y—1)))7.设有以下定义和语句,则*(*(p+2)+1)的值为__60________.int a[3][2]={10, 20, 30, 40, 50, 60}, (*p)[2]; p=a;8.若有int a=1;int b=2;则a|b的值为___3______.9。

设有char *p="abcde\0fghjik\0 ”;则语句printf(”%d\n ",strlen(p));的输出结果是_____5_______。

10.表达式0x13^0x17的值是__ox4________。

11.在C语言中,&运算符作为单目运算符时表示的是__取地址_____运算;作为双目运算符时表示的是_按位与____运算。

12.若p是指向某一结构体变量的指针变量,则通过指变量对结构体成员的引用方法有:_____p—〉_______和_______(*p)。

_______。

13.设int a[3][4]={{1,2,3,4},{5,6,7,8}};则*(*a+2)的值为__3____。

14。

判断文本文件是否结束时使用的符号常量EOF的值是___—1___。

C语言-谭浩强著-第1章练习题

C语言-谭浩强著-第1章练习题

第一章C语言概述重要次重要重复或欲删除基础1.1 选择题*1.1一个C程序的执行是从。

A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案:A参考分析:C语言总是从main函数开始,main函数结束。

但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。

如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。

*1.2以下叙述正确的是。

A)在C程序中,main函数必须位于程序的最前面B)在C程序的每一行只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误参考答案:C参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。

因此,如果注释中存在错误,系统是不可能发现的。

另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。

1.3以下叙述不正确的是。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面参考答案:D参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。

C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。

1.4 C语言规定:在一个源程序中,main函数的位置。

A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后参考答案:C*1.5一个C语言程序是由。

A)一个主程序和若干个子程序组成B)若干函数组成C)若干过程组成D)若干子程序组成参考答案:B参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。

c语言程序设计谭浩强课后习题答案

c语言程序设计谭浩强课后习题答案

c语言程序设计谭浩强课后习题答案1. 一个C语言程序是由()。

[单选题] *一个主程序和若干子程序组成函数组成(正确答案)若干过程组成若干子程序组成2. 一个C程序的执行是从()。

[单选题] *本程序的main函数开始,到main函数结束(正确答案)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束本程序的main函数开始,到本程序文件的最后一个函数结束本程序文件的第一个函数开始,到本程序main函数结束3. 同时定义相同类型的多个变量要使用()。

[单选题] *句号分号逗号(正确答案)冒号4. 标准C语言程序编译生成的文件后缀为()。

[单选题] *.c.cpp.obj(正确答案).exe5. 下面的注释那个写法是正确的()。

[单选题] */*this is a comment*\/*this is a comment/* it is error*//*this is a comment*/ (正确答案)/*this one seems like a comment doesn’t it6. 以下叙述中正确的是()。

[单选题] *用C程序实现的算法必须要有输入和输出操作用C程序实现的算法可以没有输出但必须要有输入用C程序实现的算法可以没有输入但必须要有输出(正确答案)用C程序实现的算法可以既没有输入也没有输出7. C语言中3种基本结构是()。

[单选题] *顺序结构、选择结构、循环结构(正确答案)if、switch、breakfor、while、do-whileif、for、continue8. 以下叙述中错误的是()。

[单选题] *用户所定义的标识符允许使用关键字(正确答案)用户所定义的标识符应尽量做到“见名知意”用户所定义的标识符必须以字母或下划线开头用户定义的标识符中,大、小写字母代表不同标识9. 以下不能定义为用户标识符的是()。

[单选题] *Main_0_intsizeof(正确答案)10. 以下选项中合法的用户标识符是()。

c语言试题 谭浩强

c语言试题 谭浩强

C语言期末考试试题(谭浩强版) 2011-7-8 20:552011-7-8 21:23 最佳答案 C语言期末考试试题2008年04月12日星期六 00:22一选择题(24分,每小题2分)1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。

A 存放读入数据项的存储区B 存放读入数据的地址或指向此地址的指针C 一个指向所读文件的文件指针D 一个整形变量,代表要读入的数据项总数2.以下程序的输出结果为()。

main( ){int i=010,j=10;printf("%d,%d\n",i++,j--);}A 11,9B 9,10C 8,10D 9,93.设a为int型变量,执行下列赋值语句后,a的取值分别是()。

a=;a=3;a=(int)%4;a=5<<2;A 125,6,31,1B 125,6,1,20C 125,,31,20D ,,2,204.设i和k都是int类型,则for循环语句()。

for(i=0,k=-1;k=1;i++,k++)printf("****\n");A 循环结束的条件不合法B 循环体一次也不执行C 循环体只执行一次D 是无限循环5.以下程序的输出结果为()。

main( ){char c;int i;for(i=65;i<68;i++){c=i+32;switch(c){case 'a':case 'b':case 'c':printf("%c,",c);break;default:printf("end");}}}A a,b,c,endB a,a,a,endC a,a,a,D a,b,c,6.函数调用语句:fseek(fp,-10L,2);的含义是()。

A 将文件位置指针从文件末尾处向文件头的方向移动10个字节B 将文件位置指针从当前位置向文件头的方向移动10个字节C 将文件位置指针从当前位置向文件末尾方向移动10个字节D 将文件位置指针移到距离文件头10个字节处7.以下程序的输出结果为()。

谭浩强C习题答案

谭浩强C习题答案

谭浩强C习题答案(1-6)2006-09-21 16:12第一章1.6main(){int a,b,c,max;printf("input three numbers:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf("max=%d",max);}第二章2.3(1)(10)10=(12)8=(a)16(2)(32)10=(40)8=(20)16(3)(75)10=(113)8=(4b)16(4)(-617)10=(176627)8=(fd97)16(5)(-111)10=(177621)8=(ff91)16(6)(2483)10=(4663)8=(963)16(7)(-28654)10=(110022)8=(9012)16(8)(21003)10=(51013)8=(520b)162.6aabb (8)cc (8)abc(7)AN2.7main(){char c1='C',c2='h',c3='i',c4='n',c5='a';c1+=4, c2+=4, c3+=4, c4+=4, c5+=4;printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);}2.8main(){int c1,c2;c1=97;c2=98;printf("%c %c",c1,c2);}2.9(1)=2.5(2)=3.52.109,11,9,102.12(1)24 (2)10 (3)60 (4)0 (5)0 (6)0第三章3.4main(){int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c);printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);printf("u=%6ld n=%9ld\n",u,n);printf("c1='%c'or %d(ASCII)\n",c1,c1);printf("c2='%c'or %d(ASCII)\n",c2,c2);}3.5575 767.856400,-789.12396267.856400,-789.12396267.86 -789.12,67.856400,-789.123962,67.856400,-789.123962 6.785640e+001,-7.89e+002A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER, COM3.6a=3 b=7/x=8.5 y=71.82/c1=A c2=a/3.710 20Aa1.5 -3.75 +1.4,67.8/(空3)10(空3)20Aa1.5(空1)-3.75(空1)(随意输入一个数),67.8回车3.8main(){float pi,h,r,l,s,sq,sv,sz;pi=3.1415926;printf("input r,h\n");scanf("%f,%f",&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;sv=4.0/3.0*pi*r*r*r;sz=pi*r*r*h;printf("l=%6.2f\n",l);printf("s=%6.2f\n",s);printf("sq=%6.2f\n",sq);printf("vq=%6.2f\n",sv);printf("vz=%6.2f\n",sz);}3.9main(){float c,f;scanf("%f",&f);c=(5.0/9.0)*(f-32);printf("c=%5.2f\n",c);}3.10#include"stdio.h"main(){char c1,c2;scanf("%c,%c",&c1,&c2);putchar(c1);putchar(c2);printf("\n");printf("%c%c\n",c1,c2);}第四章4.3(1)0 (2)1 (3)1 (4)0 (5)14.4main(){int a,b,c;scanf("%d,%d,%d",&a,&b,&c);if(a<b)if(b<c)printf("max=%d\n",c);elseprintf("max=%d\n",b);else if(a<c)printf("max=%d\n",c);elseprintf("max=%d\n",a);}main(){int a,b,c,temp,max;scanf("%d,%d,%d",&a,&b,&c);temp=(a>b)?a:b;max=(c>temp)?c:temp;printf("max=%d",max);}4.5main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if(x<10)y=2*x-1;else y=3*x-11;printf("y=%d",y);}4.6main(){int score,temp,logic;char grade;logic=1;while(logic){scanf("%d",&score);if(score>=0&&score<=100)logic=0;}if(score==100)temp=9;elsetemp=(score-score%10)/10;switch(temp){case 9:grade='A';break;case 8:grade='B';break;case 7:grade='C';break;case 6:grade='D';break;case 5:case 4:case 3:case 2:case 1:case 0:grade='E';}printf"score=%d,grade=%c",score,grade);}4.7main(){long int num;int indiv,ten,hundred,thousand,ten_thousand,place;scanf("%ld",&num);if(num>9999) place=5;else if(num>999) place=4;else if(num>99) place=3;else if(num>9) place=2;else place=1;printf("place=%d\n",place);ten_thousand=num/10000;thousand=(num-ten_thousand*10000)/1000;hundred=(num-ten_thousand*10000-thousand*1000)/100;ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=num-ten_thousand*10000-thousand*1000-hundred*100-ten*10;switch(place){case5:printf("%d,%d,%d,%d,%d\n",ten_thousand,thousand,hundred,ten,indiv);printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thou sand,ten_thousand);break;case 4:printf("%d,%d,%d,%d\n",thousand,hundred,ten,indiv);printf("%d,%d,%d,%d\n",indiv,ten,hundred,thousan d);break;case 3:printf("%d,%d,%d\n",hundred,ten,indiv);printf("%d,%d,%d\n",indiv,ten,hundred);break;case 2:printf("%d,%d\n",ten,indiv);printf("%d,%d\n",indiv,ten);break;case 1:printf("%d\n",indiv);printf("%d\n",indiv);}}4.8main(){long i;float bonus,bon1,bon2,bon4,bon6,bon10;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;scanf("%ld",&i);if(i<=1e5)bonus=i*0.1;else if(i<=2e5)bonus=bon1+(i-100000)*0.075;else if(i<=4e5)bonus=bon2+(i-200000)*0.05;else if(i<=6e5)bonus=bon4+(i-400000)*0.03;else if(i<=1e6)bonus=bon6+(i-600000)*0.015;else bonus=bon10+(i-1000000)*0.01;printf("bonus=%10.2f",bonus);}main(){long i;float bonus,bon1,bon2,bon4,bon6,bon10;int branch;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;scanf("%ld",&i);branch=i/100000;if(branch>10)branch=10;switch(branch){case 0:bonus=i*0.1;break;case 1:bonus=bon1+(i-100000)*0.075;break; case 2:case 3:bonus=bon2+(i-200000)*0.05;break; case 4:case 5:bonus=bon4+(i-400000)*0.03;break; case 6:case 7case 8:case 9:bonus=bon6+(i-600000)*0.015;break; case 10:bonus=bon10+(i-1000000)*0.01;}printf("bonus=%10.2f",bonus);}4.9main(){int t,a,b,c,d;scanf("%d,%d,%d,%d",&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("%d %d %d %d\n",a,b,c,d);}4.10main(){int h=10;float x,y,x0=2,y0=2,d1,d2,d3,d4;scanf("%f,%f",&x,&y);d1=(x-x0)*(x-x0)+(y-y0)*(y-y0);d2=(x-x0)*(x-x0)+(y+y0)*(y+y0);d3=(x+x0)*(x+x0)+(y-y0)*(y-y0);d4=(x+x0)*(x+x0)+(y+y0)*(y+y0);if(d1>1&&d2>1&&d3>1&&d4>1)h=0;printf("h=%d",h);}第五章循环控制5.1main(){int a,b,num1,num2,temp;scanf("%d,%d",&num1,&num2);if(num1<num2){temp=num1;num1=num2;num2=temp;}a=num1;b=num2;while(b!=0){temp=a%b;a=b;b=temp;}printf("%d\n",a);printf("%d\n",num1*num2/a);}5.2#include"stdio.h"main(){char c;int letters=0,space=0,digit=0,other=0;while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++;else if(c==' ')space++;else if(c>='0'&&c<='9')digit++;else other++;}printf("letters=%d\nspace=%d\ndigit=%d\nother=%d\n",letters,space,dig it,other);}5.3main(){int a,n,count=1,sn=0,tn=0;scanf("%d,%d",&a,&n);while(count<=n){tn+=a;sn+=tn;a*=10;++count;}printf("a+aa+aaa+...=%d\n",sn);}5.4main(){float n,s=0,t=1;for(n=1;n<=20;n++){t*=n;s+=t;}printf("s=%e\n",s);}5.5main(){int N1=100,N2=50,N3=10;float k;float s1=0,s2=0,s3=0;for(k=1;k<=N1;k++)s1+=k;for(k=1;k<=N2;k++)s2+=k*k;for(k=1;k<=N3;k++)s3+=1/k;printf("s=%8.2f\n",s1+s2+s3);}5.6main(){int i,j,k,n;for(n=100;n<1000;n++){i=n/100;j=n/10-i*10;k=n%10;if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)printf("n=%d\n",n);}}5.7#define M 1000main(){int k0,k1,k2,k3,k4,k5,k6,k7,k8,k9;int i,j,n,s;for(j=2;j<=M;j++){n=0;s=j;for(i=1;i<j;i++){if((j%i)==0){n++;s=s-i;switch(n){case 1:k0=i;break;case 2:k1=i;break;case 3:k2=i;break;case 4:k3=i;break;case 5:k4=i;break;case 6:k5=i;break;case 7:k6=i;break;case 8:k7=i;break;case 9:k8=i;break;case 10:k9=i;break;}}}if(s==0){printf("j=%d\n",j);if(n>1)printf("%d,%d",k0,k1);if(n>2)printf(",%d",k2);if(n>3)printf(",%d",k3);if(n>4)printf(",%d",k4);if(n>5)printf(",%d",k5);if(n>6)printf(",%d",k6);if(n>7)printf(",%d",k7);if(n>8)printf(",%d",k8);if(n>9)printf(",%d\n",k9);}}}main(){static int k[10];int i,j,n,s;for(j=2;j<=1000;j++){n=-1;s=j;for(i=1;i<j;i++){if((j%i)==0){n++;s=s-i;k[n]=i;}}if(s==0){printf("j=%d\n",j);for(i=0;i<n;i++)printf("%d,",k[i]);printf("%d\n",k[n]);}}}5.8main(){int n,t,number=20;float a=2;b=1;s=0;for(n=1;n<=number;n++) {s=s+a/b;t=a,a=a+b,b=t;}printf("s=%9.6f\n",s); }5.9main(){float sn=100.0,hn=sn/2; int n;for(n=2;n<=10;n++){sn=sn+2*hn;hn=hn/2;}printf("sn=%f\n",sn); printf("hn=%f\n",hn);}5.10main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;x2=x1;day--;}printf("x1=%d\n",x1);}5.11#include"math.h"main(){float a,xn0,xn1;scanf("%f",&a);xn0=a/2;xn1=(xn0+a/xn0)/2;do{xn0=xn1;xn1=(xn0+a/xn0)/2;}while(fabs(xn0-xn1)>=1e-5);printf("a=%5.2f\n,xn1=%8.2f\n",a,xn1); }5.12#include"math.h"main(){float x,x0,f,f1;x=1.5;do{x0=x;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;}while(fabs(x-x0)>=1e-5);printf("x=%6.2f\n",x);}5.13#include"math.h"main(){float x0,x1,x2,fx0,fx1,fx2;do{scanf("%f,%f",&x1,&x2);fx1=x1*((2*x1-4)*x1+3)-6;fx2=x2*((2*x2-4)*x2+3)-6;}while(fx1*fx2>0);do{x0=(x1+x2)/2;fx0=x0*((2*x0-4)*x0+3)-6;if((fx0*fx1)<0){x2=x0;fx2=fx0;}else{x1=x0;fx1=fx0;}}while(fabs(fx0)>=1e-5);printf("x0=%6.2f\n",x0);}5.14main(){int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++)printf(" ");for(k=0;k<=2*i;k++)printf("*");printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=i;j++)printf(" ");for(k=0;k<=4-2*i;k++)printf("*");printf("\n");}}5.15main(){char i,j,k;for(i='x';i<='z';i++)for(j='x';j<='z';j++){if(i!=j)for(k='x';k<='z';k++){if(i!=k&&j!=k){if(i!='x'&&k!='x'&&k!='z')printf("\na--%c\tb--%c\tc--%c\n",i,j,k);}}}}第六章数组6.1#include <math.h>#define N 101main(){ int i,j,line,a[N];for (i=2;i<N;i++) a[i]=i;for (i=2;i<sqrt(N);i++)for (j=i+1;j<N;j++){if(a[i]!=0 && a[j]!=0)if (a[j]%a[i]==0)a[j]=0; } printf("\n");for (i=2,line=0;i<N;i++){ if(a[i]!=0){ printf("%5d",a[i]);line++; }if(line==10){ printf("\n");line=0; }}}6.2#define N 10main(){int i,j,min,temp,a[N];for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N-1;i++){min=i;for(j=i+1;j<N;j++)if(a[min]>a[j])min=j;temp=a[i];a[i]=a[min];a[min]=temp;}for(i=0;i<N;i++)printf("%5d",a[i]);}6.3main(){float a[3][3],sum;int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++){scanf("%f",&sum);a[i][j]=sum;}for(i=0;i<3;i++)sum=sum+a[i][i];printf("sum=%f",sum);}6.4main(){int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number, end,i,j;scanf("%d",&number);end=a[9];if(number>end) a[10]=number;else{for(i=0;i<10;i++){if(a[i]>number){temp1=a[i];a[i]=number;for(j=i+1;j<11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;i<11;i++)printf("%6d",a[i]);}6.5#define N 5main(){int a[N]={8,6,5,4,1},i,temp;for(i=0;i<N/2;i++){temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}for(i=0;i<N;i++)printf("%4d",a[i]);}6.6#define N 11main(){int i,j,a[N][N];for(i=1;i<N;i++){a[i][i]=1;a[i][1]=1;}for(i=3;i<N;i++)for(j=2;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=1;i<N;i++){for(j=1;j<=i;j++)printf("%6d",a[i][j]);printf("\n");}}6.7main(){int a[16][16],i,j,k,p,m,n;p=1;while(p==1){scanf("%d",&n);if((n!=0)&&(n<=15)&&(n%2!=0))p=0;}for(i=1;i<=n;i++)for(j=1;j<=n;j++)a[i][j]=0;j=n/2+1;a[1][j]=1;for(k=2;k<=n*n;k++){i=i-1;j=j+1;if((i<1)&&(j>n)){i=i+2;j=j-1;}else{if(i<1)i=n;if(j>n)j=1;}if(a[i][j]==0)a[i][j]=k;else{i=i+2;j=j-1;a[i][j]=k;}}for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%3d",a[i][j]);printf("\n");}}6.8#define N 10#define M 10main(){int i,j,k,m,n,flag1,flag2,a[N][M],max,maxi,maxj; scanf("%d,%d",&n,&m);for(i=0;i<n;i++)for(j=0;j<m;j++)scanf("%d",&a[i][j]);flag2=0;for(i=0;i<n;i++){max=a[i][0];for(j=0;j<m;j++)if(max<a[i][j]){max=a[i][j];maxj=j;}for(k=0,flag1=1;k<n&&flag1;k++)if(max>a[k][maxj])flag1=0;if(flag1){ printf("\na[%d][%d]=%d\n",i,maxj,max);flag2=1;}}if(!flag2) printf("NOT");}6.9#include<stdio.h>#define N 15main(){int i,j,number,top,bott,min,loca,a[N],flag;char c;for(i=0;i<=N;i++)scanf("%d",&a[i]);flag=1;while(flag){scanf("%d",&number);loca=0;top=0;bott=N-1;if((number<a[0])||(number>a[N-1]))loca=-1;while((loca==0)&&(top<=bott)){min=(bott+top)/2;if(number==a[min]){loca=min;printf("number=%d,loca=%d\n",number,loca+1);}else if(number<a[min])bott=min-1;elsetop=min+1;}if(loca==0||loca==-1)printf("%d not in table\n",number);printf("continue Y/N or y/n\n");c=getchar();if(c=='N'||c=='n')flag=0;}}6.10main(){int i,j,uppn,lown,dign,span,othn;char text[3][80];uppn=lown=dign=span=othn=0;for(i=0;i<3;i++){gets(text[i]);for(j=0;j<80&&text[i][j]!='\0';j++){if(text[i][j]>='A'&&text[i][j]<='Z')uppn++;else if(text[i][j]>='a'&&text[i][j]<='z')lown++;else if(text[i][j]>='0'&&text[i][j]<='9')dign++;else if(text[i][j]==' ')span++;elseothn++;}}for(i=0;i<3;i++)printf("%s\n",text[i]);printf("uppn=%d\n",uppn);printf("lown=%d\n",lown);printf("dign=%d\n",dign);printf("span=%d\n",span);printf("othn=%d\n",othn);}6.11main(){static char a[5]={'*','*','*','*','*'}; int i,j,k;char space=' ';for(i=0;i<=5;i++){printf("\n");for(j=1;j<=3*i;j++)printf("%1c",space);for(k=0;k<=5;k++)printf("%3c",a[k]);}}6.12#include<stdio.h>main(){int i,n;char ch[80],tran[80];gets(ch);i=0;while(ch[i]!='\0'){if((ch[i]>='A')&&(ch[i]<='Z'))tran[i]=26+64-ch[i]+1+64;else if((ch[i]>='a')&&(ch[i]<='z')) tran[i]=26+96-ch[i]+1+96;elsetran[i]=ch[i];i++;}n=i;for(i=0;i<n;i++)putchar(tran[i]);}6.13main(){char s1[80],s2[40];int i=0,j=0;scanf("%s",s1);scanf("%s",s2);while(s1[i]!='\0')i++;while(s2[j]!='\0')s1[i++]=s2[j++];s1[i]='\0';printf("s=%s\n",s1);}6.14#include<stdio.h>main(){int i,resu;char s1[100],s2[100];gets(s1);gets(s2);i=0;while((s1[i]==s2[i])&&(s1[i]!='\0'))i++;if(s1[i]=='\0'&&s2[i]=='\0')resu=0;elseresu=s1[i]-s2[i];printf("s1=%s,s2=%s,resu=%d\n",s1,s2,resu); }6.15#include"stdio.h"main(){char from[80],to[80];;int i;scanf("%s",from);for(i=0;i<=strlen(from);i++)to[i]=from[i];printf("%s\n",to);}类别:学习收藏 | | 添加到搜藏 | 分享到i贴吧 | 浏览(1294) | 评论(3)上一篇:◆...下一篇:谭浩强C习题答案(7-8)最近读者:登录后,您就出现在这里。

谭浩强c语言程序设计习题集

谭浩强c语言程序设计习题集

目录重要次重要重复或欲删除基础第一章 C语言概述1.1 选择题1.2 填空题第二章数据类型、运算符与表达式2.1 选择题2.2 填空题第三章最简单的C程序设计3.1 选择题3.2 填空题第四章逻辑运算和判断选取控制4.1 选择题4.2 填空题4.3 编程题第五章循环控制5.1 选择题5.2 填空题5.3 编程题第六章数组6.1 选择题6.2 填空题6.3 编程题第七章函数7.1 选择题7.2 填空题7.3 编程题第八章编译预处理8.1 选择题8.2 填空题8.3 编程题第九章指针9.1 选择题9.2 填空题9.3 编程题第十章结构体和共用体10.1 选择题10.2 填空题10.3 编程题第十一章位运算11.1 选择题11.2 填空题11.3 编程题第十二章文件12.1 选择题12.2 填空题12.3 编程题第一章 C语言概述1.1 选择题*1.1一个C程序的执行是从。

A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案:A参考分析:C语言总是从main函数开始,main函数结束。

但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。

如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。

*1.2以下叙述正确的是。

A)在C程序中,main函数必须位于程序的最前面B)在C程序的每一行只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误参考答案:C参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言期末考试试题(谭浩强版) 2011-7-8 20:552011-7-8 21:23 最佳答案 C语言期末考试试题2008年04月12日星期六 00:22一选择题(24分,每小题2分)1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。

A 存放读入数据项的存储区B 存放读入数据的地址或指向此地址的指针C 一个指向所读文件的文件指针D 一个整形变量,代表要读入的数据项总数2.以下程序的输出结果为()。

main( ){int i=010,j=10;printf("%d,%d\n",i++,j--);}A 11,9B 9,10C 8,10D 9,93.设a为int型变量,执行下列赋值语句后,a的取值分别是()。

a=;a=3;a=(int)%4;a=5<<2;A 125,6,31,1B 125,6,1,20C 125,,31,20D ,,2,204.设i和k都是int类型,则for循环语句()。

for(i=0,k=-1;k=1;i++,k++)printf("****\n");A 循环结束的条件不合法B 循环体一次也不执行C 循环体只执行一次D 是无限循环5.以下程序的输出结果为()。

main( ){char c;int i;for(i=65;i<68;i++){c=i+32;switch(c){case 'a':case 'b':case 'c':printf("%c,",c);break;default:printf("end");}}}A a,b,c,endB a,a,a,endC a,a,a,D a,b,c,6.函数调用语句:fseek(fp,-10L,2);的含义是()。

A 将文件位置指针从文件末尾处向文件头的方向移动10个字节B 将文件位置指针从当前位置向文件头的方向移动10个字节C 将文件位置指针从当前位置向文件末尾方向移动10个字节D 将文件位置指针移到距离文件头10个字节处7.以下程序的输出结果为()。

main( ){int i=0,j=0;while(s1[i]!='\0')i++;while(s2[j]!='\0')s1[i++]=s2[j++];s1[i]=0;printf("%s\n",s1);}A sideB countryC sidetryD countryside8.下列说法不正确的是()。

A 主函数main中定义的变量在整个文件或程序中有效B 不同函数中,可以使用相同名字的变量C 形式参数是局部变量D 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效9.在下列程序段中,枚举变量 c1的值是()。

enum color { red,yellow,blue=4,green,white}c1;c1=yellow;c1=white;A 1B 3C 5D 610.设有说明 int (*ptr)();其中标识符ptr是()。

A 是一个指向整形变量的指针B 是一个指针,它指向一个函数值是int的函数C 是一个函数名D定义不合法11.定义由n个指向整形数据的指针组成的数组p,其正确的方式为()。

A int p;B int (*p)[n];C int *p[n];D int (*p)( );12.具有相同类型的指针类型变量p与数组a,不能进行的操作是()。

A p=a;B *p=a[0];C p=&a[0];D p=&a;二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.参加位运算的数据可以是任何类型的数据。

( )2.若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10 A 12 5则a=10,c=‘A’,f=。

( )3.C语言把文件看作是一个字符(字节)的序列。

( )4.若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。

( )5.在Turbo C中,下面的定义和语句是合法的:file *fp;fp=fopen("","r"); ( )6.若有定义:char s[ ]="china";则Turbo C系统为数组s开辟6个字节的内存单元。

( )7.若有定义和语句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21。

( )8.若有定义和语句:struct student{int num;char name[10];float score;}s[5]={{1,"lili",},{9,"xiaohua",66}},*p=s;printf("%d",*p++);输出结果是1。

( )9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。

( )10.在Turbo C中,此定义和语句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5; ( )三写出下列程序的运行结果(36分,每小题6分)1.main( ){int i=29,j=6,k=2,s;s=i+i/j%k-9; main( ){int x=31,y=2,s=0;do{s-=x*y;x+=2;y-=3;}while(x%3==0); main( ){int a[6]={10,20,30,40,50,60},i;invert(a,0,5);for(i=0;i<6;i++)printf(“%d,”,a[i]);printf(“\n”);}invert(int s[ ],int i,int j) #include <>main(){char str[ ]="The C program",c;int i;for(i=2;(c=str[i])!='\0';i++){switch(c){case 'g': ++i; break; struct w 马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?main( ){int hb,hm,hl,n=0;for(hb=0;hb<=100;hb+=(1))for(hm=0;hm<=100-hb;hm+=(2)){hl=100-hb- (3) ;if(hb/3+hm/2+2*(3)==100){n++;printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl);}}printf("n=%d\n",n);}2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。

#define N 10char str[N];void main(){int i,flag;for(flag=1;flag==1;){scanf("%s",str);flag=0;printf("\n");}sort(___(4)___);for(i=0;i<N;i++){printf("%c",str[i]);}printf("\n");}sort(char str[N]) 下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。

(本程序中二阶矩阵用一维数组来表示。

)例如,矩阵为:3 0 0 32 5 7 31 0 4 2则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。

add(int m,int n,int arr[]){for(i=0;i<m;i=i+m-1)for(j=0;j<n;j++)sum=sum+____(7)____;for(j=0;j<n;j=j+n-1)for(i=1;____(8)____;i++)sum=sum+arr[i*n+j];return(sum);}4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。

#define N 10main(){void maxmin(int arr[],int *pt1,int *pt2,int n);int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;p1=&a;p2=&b;maxmin(array,p1,p2,N);printf("max=%d,min=%d",a,b);}void maxmin(int arr[],int *pt1,int *pt2,int n){int i;*pt1=*pt2=arr[0];for(i=1;i<n;i++){if(arr[i]>*pt1)____(9)____ ;if(arr[i]<*pt2)____(10)____ ;}}答案一选择题(24分,每小题2分)1.( B )2.( C )3.( B )4.( D )5.( D )6.( A )7.( D ) 8.( A ) 9.( D )10.( B ) 11.( C ) 12.( D )二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.(×)2.(√)3.(√)4.(×)5.(×)6.(√)7.(√) 8.(×)9.(√) 10.(√ )三写出下列程序的运行结果(36分,每小题6分)=20=35 y=-4 s=-29,50,40,30,20,10,C pr*amvalue:1234China! H w lhigh byte:12low byte:34word value:1274the result:3ca8四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.(1) 3 (2) 2 (3)hm hl2.(4) str (5) str[i]=str[i+1] (6) str[i+1]=t3.(7) arr[i*n+j] (8) i<m-14.(9) *ptr1=arr[i] (10) *ptr2=arr[i]赞同1| 评论(1)。

相关文档
最新文档