C语言复习题6

合集下载

浙江大学C语言总复习题--综合

浙江大学C语言总复习题--综合

综合练习一、判断题1.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。

2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。

3.在程序的运行过程中,整型常量的值是可以改变的。

4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。

5.大括弧 { } 只能用来括复合语句。

6. do_while语句构成的循环不能用其它循环语句来代替。

7.不能用scanf 函数输入字符。

8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。

9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。

10.C 语言的一个编译预处理命令用 # 开始,最后加分号。

11. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。

12. C语言中以 %o开头的数是八进制整数。

13.在程序的运行过程中,符号常量的值是可以改变的。

14.在 C 程序中,APH 和 aph 代表不同的变量。

15.一个复合语句在语法上被认为是一条语句。

16. 只能用while语句构成循环。

17.不能用printf函数输出字符。

18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。

19. 在函数外部定义的变量称为全局变量。

20.宏定义的命令行可以看作是一条C 语句。

21. C语言源程序是可以用来直接运行的程序。

22. C语言中以 %x 开头的数是十六进制整数。

23. C程序中定义的变量,代表内存中的一个存储单元。

24.在 C 程序中,9ab是非法的用户标识符。

25. C语句必须用一个分号作为结束。

26. do_while语句构成的循环不能用break语句退出。

27. scanf 函数是 c 语言的标准输入函数。

28. C程序的main函数不能有参数。

29. 在函数内部定义的变量称为局部变量。

30.用#include包含的头文件的后缀必须是.h。

31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。

C语言第6章习题解答

C语言第6章习题解答

第6章函数和模块设计【习题6-1】更正下面函数中的错误。

(1)返回求x和y平方和的函数。

(2)返回求x和y为直角边的斜边的函数。

sum_of_sq(x,y) hypot(double x,double y){ {double x,y; h=sqrt(x*x+y*y);return(x*x+y*y); return(h);} }程序如下:/*c6_1(1).c*/ /*c6_1(2).c*/(1) (2)double sum_of_sq(double x,double y) double hypot(double x,double y) { {return(x*x+y*y); double h;} h=sqrt(x*x+y*y);return(h);}【习题6-2】说明下面函数的功能。

(1)itoa(int n,char s[ ])(2)int htod(char hex [ ]){ { int i,dec=0;static int i=0,j=0; for(i=0;hex[i]!='\0';i++)int c; { if(hex[i]>='0'&&hex[i]<='9') if(n!=0) dec=dec*16+hex[i]-'0';{ if(hex[i]>='A'&&hex[i]<='F') j++; dec=dec*16+hex[i]-'A'+10;c=n%10+'0'; if(hex[i]>='a'&&hex[i]<='f') itoa(n/10,s); dec=dec*16+hex[i]-'a'+10;s[i++]=c; }} return(dec);else }{ (3)void stod(int n)if(j==0) s[j++]='0'; { int i;s[j]='\0'; if(n<0){ putchar('-');n=-n;} i=j=0; if((i=n/10)!=0) stod(i);} putchar(n%10+'0');} }功能:(1)(略)(2)(略)【习题6-3】编写已知三角形三边求面积的函数,对于给定的3个量(正值),按两边之和大于第三边的规定,判别其能否构成三角形,若能构成三角形,输出对应的三角形面积。

c语言复习题

c语言复习题

c语言复习题一、单项选择题1.以下叙述中错误的是? A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识2、c语言数据的基本类型包括()A、整型、字符型、实型B、整型、字符型、实型、枚举类型C、整型、实型、枚举类型、指针类型 D、整型、字符型、实型、数组类型3.以下不合法的字符常量是A.’\019’B.’\’’’C.’\\’D.’\xcc’4、c语言允许使用的变量标识符是()A、x#yB、12shC、j_c_tD、char5.设有以下语句。

int a=1,b=2,c;c=a^(b<<2);执行后,c的值为 A.6 B.7 C.8 D.96、c语言中合法的字符常量是()A、‘\084’B、‘\X43’C、‘ab’D、“\0”7.下列标识符中,合法的变量名有? A.a.b B.$888 C.A1 D.3x568、若定义x和y为double型,则表达式:x=1,y=x*3/2的值是()A、1B、2C、 2.0D、1.59、若有以下类型说明语句:char w;int x;float y;double z;则表达式 w*x+z-y的结果为()类型A、floatB、char C 、int D、double10、下列表达式中,()可以正确表示x<=0或x>=1的关系A、(x>1)or (x<=0)B、x>1 || x<=0C、x>1 or x<=0D、x>=1 || x<=011.下列不正确的表达式是A.10%3+5%3B.10/3+5/3C.10%3/2D.(10.0/3.0%3)/212.以下四个选项中,不能看作一条语句的是A.{;}B.a=0,b=0,c=0;C.a>0;D.m=1;n=2;13.设x为int 型变量,则执行以下语句后,x的值为x=10;x+=x-=x-x;A.10B.20C.40D.3014、若定义a为整型数据变量则a=-2 L;printf(“%d\n”,a);以上语句结果为()A、赋值语句不合法B、输出值为-2C、输出值为不确定值D、输出值为215、现已定义整型变量int i=1;执行循环语句“while(i++<5)后i的值变为()A、1B、5C、6D、以上三个答案均不正确16、若执行下述程序时,从键盘输入数据3和4,则程序的输出结果是()main(){ int a ,b ,s;scanf(“%d%d”,&a,&b);s=a;if(a<b)< p="">s=b;s=s*s ;printf(“%d”,s);}A、14 B、16 C、18 D、2017、若数组名作为函数参数传递给函数,作为实参的数组名被处理为()A、该数组的长度 B、该数组的元素个数C、该数组中各元素的值 D、该数组的首地址18、c语言允许函数值类型缺省定义,此时该函数值隐含的类型是()A、float型B、int型C、long型D、double型19、在c语言中,存储类型为()的变量只在使用它们的时候才占用存储空间A、static和autoB、register和autoC、static和registerD、register和extern20、下面程序片段的输出结果是()char str[]=“abcd”,*p=str;printf(“%d\n”,*(p+4));A、68 B、0 C、字符‘d’的地址D、不确定的值21、设有以下说明,已知int类型占2个字节,则下列叙述正确的是()struct st{int a;int b[2];} a;A、结构变量名a和结构成员a同名,不合法B、程序运行时将为结构体st分配6个字节的内存单元C、程序运行时不为结构体st分配内存单元D、程序运行时将为结构体变量a分配6个字节的内存单元22、求字符串长度的函数是()A、strcat B、strcpy C、strcmpD、strlen 23.现已定义整型变量 int i=1;执行循环语句“while(i++<5);”后,i的值为A.1B.5C.6D.以上三个答案均不正确24.以下叙述中错误的是A.C语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句25.设有定义:int a=2,b=3,c=4;时,以下选项中值为0的表达式是A.(!a= =1)&& (!b= =0)B.aC. a&&bD.a||(b+b)&&(c-a)26.C语言中,定义PI为一个符号常量,正确的是A.#define PI 3.14B.define PI 3.14C.#include PI 3.14D.include PI 3.1427.下面关于switch语句和break语句的结论中,只有是正确的A.break语句是switch语句中的一部分B.在swtich语句中可以根据需要使用或不使用break语句C.在swtich语句中必须使用break语句D.以上三个结论中有两个是正确的28.有以下程序:main(){int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf(“%d\n”,s);}程序执行后的输出结果是 A.自然数1~9的累加和 B.自然数1~10的累加和C.自然数1~9中的奇数之和D.自然数1~10的偶数之和29.在C语言函数的定义和引用中,以下描述正确的是A.必须有形式参数B.也可以没有形式参数 C.数组名不能作为形式参数 D.形式参数必须是变量名30.下列关于return语句的说法,正确的是A.必须在每个函数中都出现B.只能在除主函数之外的函数中出现一次C.可以在同一个函数中多次出现D.在主函数和其他函数中都可以出现31.下列说法不正确的是A.形式参数是局部变量B.主函数main 中定义的变量在整个文件或程序中都又效C.在一个函数的内部,可以在复合语句中定义变量D.不同的函数中,可以使用相同名字的变量32.以下叙述正确的是A.do-while语句构成的循环不能用其它语句构成的循环来代替B.do-while语句构成的循环只能用break语句退出C.用do-while语句构成的循环,在while后的表达式为非零时结束循环D.用do-while语句构成的循环,在while后的表达式为零时结束循环33.下列数组定义语句正确的是A.int a[][]={1,2,3,4,5,6};B.char a[2][3]=’a’,’b’C.int a[][3]={1,2,3,4,5,6};D.static int a[][]={{1,2,3},{4,5,6}}; 34.若定义int a[3][4];则下列选项不能表示数组元素a[1][1]地址的是A.a[1]+1B.&a[1][1]C.*(a+1)[1]D.*(a+5)35.已知int 和double类型分别占2个和8个字节,若有如下定义:Struct data{ int i;char ch;double f;}b;则结构变量b占用内存的字节数是 A.7 B.2 C.8 D.1136.对于以下递归函数f,调用f(4),其返回值为int f(int n){ return f(n-1)+n;}A.10 B.11 C.0 D.以上均不是37.有以下程序:main(){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf(“%d\n”,*p+*q);}程序运行后的输出结果是 A.16 B.10 C.8 D.638.C语言中操作文件的正确顺序是A.读写,关闭,打开B.打开,读写,关闭C.打开,关闭,读写D.读写,打开,关闭39.定义union s{int w,x,y,z;char c[6];};,请问执行sizeof(union s)=A.2B.6C.8D.1440.说明语句int *f();中的标识符f代表A.一个用于指向整型数据的指针变量B.一个用于指向一维数组的行指针C.一个用于指向函数的指针变量D.一个返回值为指针型的函数名二、填空题1.设有程序段:int k=10;while(k=0) k=k-1;则循环体语句执行次。

C期末考试复习题(答案)

C期末考试复习题(答案)

C期末考试复习题(答案)C语言复习题一、单项选择题1、C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( C )的文件。

A).c B).obj C).exe D).bas2、)完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( B )A)连接、编译B)编译、连接 C)连接、运行D)运行3、关于C语言的叙述中,不正确的是(D)A)C程序可由一个或多个函数组成B)C程序必须包含一个main ()函数C)C程序的基本组成单位是函数D)注释说明只能位于一条语句的后面4、一个C程序的执行是从(A )。

A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束5、以下正确的叙述是(C )A) 在C语言中,main函数必须位于文件的开头B) C语言每行中只能写一条语句C) C语言本身没有输入、输出语句D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误6、下列选项中,不能用作标识符的是( D)。

A) _1234_ B) _1_2 C) int_2_ D) 2_int_7、常数的书写格式决定了常数的类型和值,0x1011是( C )A)8进制整型常量B)字符常量 C)16进制整型常数D)2进制整型常数8、以下4组用户定义标识符中,全部合法的一组是( A )A)_total clu_1 sum B)if -max turbC)txt REAL 3COM D)int k_2 _0019、_( D )是合法的用户自定义标识符。

A) b-b B)float C)123a D) _isw10、以下选项中不正确的整型常量是( C )。

A) 12L B) -10 C) 1,900 D) 123U11、表达式( C )的值是0。

C语言期末复习卷习题

C语言期末复习卷习题

期末总复习(基础知识+程序设计部分)一.填空1.已知char ch='A’;则下列表达式的值是: aCh=(ch>=’A’&&ch〈=’Z’)? (ch+32):ch;2。

若x=1,y=2,z=3, 则表达式z+=++x+y++之值是73.若x=2,y=3,则x%=y+3之值为 24.. 若有定义int y=3; float z=5.2, x=4.8;则表达式y+=(int)x+x+z的值为175。

设x,y,z为int型变量,且x=3,y=—4,z=5,请写出下列各表达式的值1)(x&&y)==(x||z) 12)!(x>y)+(y!=z)||(x+y)&&(y-z)03)x++-y+(++z)136。

设x,y,z为int型变量,请用C语言表达式描述下列命题1)x和y中有一个小于z (x〈z&&y>z||x>z&&y〈z )==12) x,y和z中有两个为负数(x〈0&&y<0&&z>=0||z<0&&y<0&&x〉=0||y<0&&x〈0&&z>=0)==13)y是奇数y%2 !=07。

下面for循环语句最多可执行 4 次For (x=0,y=0 ;(y !=99)&&(x<4) ;x++)8。

设i,j,k均为int型变量,则执行以下for语句后,k的值是10for (i=0,j=10 ;i〈=j ;i++,j——)k=i+j ;9.若已知x,y,z,m,n均为int 型变量,则执行下面语句后,x的值为7 y的值为9z的值为7m=10 ;n=5;x=(-—m==n++)?—-m : ++n;y=m++;z=n;10。

若有说明语句: w=1,x=2,y=3,z=4; 则表达式w〉x? w:z〉y?z:x值是 4 11。

若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void12. 凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储13。

复习题6

复习题6

1、C语言提供的合法的数据类型关键字是A)Double B)short C)integer D)Char2、表达式:10!=9的值是A)true B)非零值 C)0 D)13、在下列选项中,不正确的赋值语句是A)++t; B)n1=(n2=(n3=0));C)k=i==j; D)a=b+c=1;4、若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是A)i= *P; B)*P=*&j; C)i=&j; D)i=**p;5、不能把字符串:Hello!赋给数组b的语句是A)char b[10]={'H','e','l','l','o','!'};B)char b[10];b="Hello!";C)char b[10];strcpy(b,"Hello!");D)char b[10]="Hello!";6、若有以下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是A)*p+6 B)*(p+6) C)p+5 D) *p+=57、若有以下说明:int w[3][4]o={{0,1},{2,4},{5,8}};int(*p)[4]=w;则数值为4的表达式是A)*w[1]+1 B)p++,*(p+1)C)w[2][2] D)p[1][1]8、若程序中有下面的说明和定义struct abc{int x;char y;}struct abc s1,s2;则会发生的情况是A)编译出错 B)程序将顺利编译`连接`执行C)能顺利通过编译`连接`但不能执行 D)能顺利通过编译`但连接出错9、在C语言提供的合法的关键字是A)swicth B)cherC)default D) Case10、在C语言中,合法的字符常量是A)'\084' B)'\x43'C)'ab' D)"\0"11、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是A)1 B)2C)2.0 D)2.512、合法的数组定义是A)int a[]="string"; B)int a[5]={0,1,2,3,4,5};C)vhst s="string"; D)char a[]={0,1,2,3,4,5};13、若有定义和语句:char s[10];s="abcd";printf("%s\n",s);则结果是(以下u代表空格)A)输出abcd B)输出aC)输出abcduuuuu D)编译不通过14、若有定义和语句:int **pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);则输出结果是:A)10,20 B)10,10C)20,10 D)20,2015、若有以下定义和语句:int u=010,v=0x10,w=10;printf("%d,%d,%d\n”,u,v,w);则输出结果是:A)8,16,10 B)10,10,10C)8,8,10 D)8,10,1016、若有以下定义和语句char c1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");则输出结果是:A)2,M B)3,EC)2,E D)输出项与对应的格式控制不一致,输出结果不确定17、若有以下定义:char s[20]="programming",*ps=s;则不能代表字符o的表达式是A)ps+2 B)s[2]C)ps[2] D)ps+=2,*ps18、若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是for (i=5;i;i--)for(j=0;j<4;j++){...}A)20 B)25 C)24 D)3019、若有以下定义和语句:char *s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是A)4 B)5 C)9 D)1020、若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是A)*p B)a[10] C)*a D)a[p-a]21、下面程序的输出是main(){ char *s="121";int k=0, a=0, b=0;do {k++;if(k%2==0) {a=a+s[k]-'0';continue;}b=b+s[k]-'0';a=a+s[k]-'0';}while (s[k+1]);printf("k=%d a=%d b=%d\n",k,a,b);}A)k=3 a=2 b=3 B)k=3 a=3 b=2C)k=2 a=3 b=2 D)k=2 a=2 b=322、下面程序的输出是main(){ unsigned a=32768;printf("a=%d\n",a);}A)a=32768 B)a=32767C)a=-32767 D)a=-123、若有以下定义:float x;int a,b;则正确的switch 语句是A)switch(x) B)switch(x){ case1.0:printf("*\n"); { case1,2:printf("*\n");case2.0:printf("**\n"); case3:printf("**\n");} }C)switch (a+b) D)switch (a+b);{ case 1:printf("\n"); { case 1:printf(."*\n");case 1+2:printf("**\n"); case 2:printf("**\n");} }24、若有定义:int x,y;char a,b,c;并有以下输入数据(此处< CR> 代表换行符,u代表空格):1u2AuBuC则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c 赋字符C 的正确程序段是A)scanf("x=%dy+%d",&x,&y);a=getchar();b=getchar();c=getcha r();B)scanf("%d%d",&x,&y);a=getchar();b=getchar();c=getchar();C)scanf("%d%d%c%c%c”,&x,&y,&a,&b,&c);D)scanf("%d%d%c%c%c%c%c%c”;&x,&y,&a,&a,&b,&b,&c,&c);25、以下程序输出的结果是#include#includemain(){ char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for (k=1;k<3;k++)printf("%s\n",&w[k][k]);}A)ABCD B)ABCD C)EFG D)FGHFGH EFG KL KLM JK IJ26、若有以下的定义:int a[]={1,2,3,4,5,6,7,88,9,10), *p=a;则值为3的表式是A)p+=2, *(p++) B)p+=2,*++pC)p+=3, *p++ D)p+=2,++*p27、假定所有变量均已正确说明,下列程序段运行后x的值是a=b=c=0;x=35;if(!a)x--;else if(b);if(c)x=3;else x=4;A)4 B)34 C)35 D)328、在以下一组运算符中,优先级最高的运算符是A)<= B)= C)% D)&&29、若有以下定义和语句:int w[2][3],(*pw)[3];pw=w;则对w数组元素非法引用是A)*(w[0]+2) B)*(pw+1)[2]C)pw[0][0] D)*(pw[1]+2)30、若有以下程序片段:char str[]="ab\n\012\\\"";printf(%d",strlen(str));上面程序片段的输出结果是A)3 B)4 C)6 D)1231、函数调用:strcat(strcpy(str1,str2),str3)的功能是A)将串str1复制到串str2中后再连接到串str3之后B)将串str1连接到串str2之后再复制到串str3之后C)将串str2复制到串str1中后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1复制到串str3中32、以下对C语言函数的有关描述中,正确的是A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B)C函数既可以嵌套定义又可以递归调用C)函数必须有返回值,否则不能使用函数D)C程序中有调用关系的所有函数必须放在同一个源程序文件中33、以下叙述中不正确的是A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值.B)在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容.C)在C中,外部变量的隐含类别是自动存储类别.D)在C中,函数形参可以说明为register变量.34、以下程序的输出结果是#includesubl(char a,char b) {char c; c=a;a=b;b=c;}sub2(char* a,char b) {char c; c=*a;*a=b;b=c;}sub3(char* a,char*b) {char c; c=*a;*a=*b;*b=c;}main(){ char a,b;a='A';b='B';sub3(&a,&b);putchar(a);putchar(b);a='A';b='B';sub2(&a,b);putchar(a);prtchar(b);a='A';b='B';sub1(a,b);putchar(a);putchar(b);}A)BABBAB B)ABBBBA C)BABABA D)BAABBA35、设有如下定义:struct sk{int a;float b;}data,*p;若有p=&data;,则对data中的a域的正确引用是A)(*p).data.a B)(*p).aC)p->data.a D)p.data.a36、以下对枚举类型名的定义中正确的是A)enum a={one,two,three}; B)enum a {one=9,two=-1,three};C)enum a={"one","two","three"}; D)enum a {"one","two","three"};37、在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是函数.38、若函数fun的类型void,且有以下定义和调用语句:#define M 50main(){ int a[M];……fun(a);……}定义fun函数首部可以用三种不同的形式,请写出这三种形式: ()()()(注意:①形参的名字请用q,②使用同一种风格).39、若给fun函数的形参s传送字符串:"uuuu6354abc",则函数的返回值是 15log fun(char s[]){ long n;int sign;for(;isspace(*s);s++);sign=(*s=='-')?-1:1;if(*s=='+'‖*s=='-')s++;for(n=0;isdigit(*s);s++)n=10*n+(*s-'0'); return sign * n;}40、以下函数用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n 所指存储单元中存放数组中数据的个数.插入后数组中的数仍有序.请填空.void fun (char *w,char x,int *n){ int i,p;p=0;w[*n]=x;while (x>w[p])for(i=*n;i>p;i--)w[i]= ;w[p]=x;++ *n;}41、fun1函数的调用语句为:fun1(&a,&b,&c); 它将三个整数按由大到小的顺序调整后依次放入a,b,c,三个变量中,a中放量大数.请填空.void fun2 (int *x,int *y){ int t;t=*x; *x=*y;*y=t;}void fun1 (int *pa,int *pb,int *pc){ if(*pc>*pb) fun2( 18);if(*pa<*pc)fun2(19);if(*pa<*pb)fun2(20);}。

C语言复习题

C语言复习题1.表达式 1 / 2 *3 *4 的值为( a ) (选一项)A. 0B. 1C. 2D. 62. C语言中,运算对象必须是整型的运算符是( d ) (选一项)A. +B. -C. *D. %3.以下程序运行结果是( a ) (选一项)int a =10 ;if(a == 10){ printf(“1”) ; }else{ printf(“2”); }A. 1B. 2C. 1 1D. 1 24.关于switch语句,以下说法正确的是( ) (选一项)A. 表达式可以是任何数据类型B. 表达式只能是整形或字符类型C. case后面的值可以重复D. case语句可以省略5.以下程序运行结果是( b ) (选一项)int a = 0 ;switch ( a){case 0 : printf(“%d ” , a );case 1 : printf(“%d ” , a ++);case 2 : printf(“%d ” , ++a );case 3 : printf(“%d ” , a ++);case 4 : printf(“%d ” , a );}A. 01234B. 00223C. 0D. 001336.以下程序运行结果是( c ) (选一项)int i= 10 ;while ( i <= 15 ){printf(“%d\n”,i );i++;}A. 10 11 12 13 14 15 16B. 11 12 13 14 15 16C. 10 11 12 13 14 15D. 程序错误,不会执行7.以下程序运行结果是( ) (选一项)int i = 1;while( i=2 ){printf(“%d\n”,i );i++;}printf(“hello”);A. helloB. 是死循环C. 1 2D. 程序报错8.以下程序运行结果是( ) (选一项)int n =4;while ( n--){printf(“%d”,--n);}A. 2 0B. 3 1C. 3 2 1D. 2 1 09.对于for 循环,请选择正确的执行顺序( ) (选一项)for( 1 ; 2 ; 3 ){4}A. 1-2-3-4-3-2-......B. 1-2-3-4-3-2-4......C. 1-2-4-3-2-4-......D. 1-2-4-3-2-1-4......10.以下程序运行后sum的值是( ) (选一项)int i, sum;for( i=1; i<6; i++)sum+=i;printf(“%d\n”,sum);A. 15B. 14C. 不确定D. 011.以下正确的C语言自定义标识符是( ) (选一项)A. _1aB. 2a_C. doD. a.1212.设int a, x=2; 执行语句a=x>0?3*x:x=10;后,变量x的值是( ) (选一项)A. 1B. 2C. 6D. 1013.设有以下程序段:int x=2,y=2,z=0,a;a=++x||++y&&z++;printf("%d,%d,%d\n",x,y,z);执行后输出的结果是( )。

c语言期末复习试题附答案

试卷编号:1120所属语言:C语言试卷方案:C语言期末考试试卷总分:100分共有题型:4种一、单项选择共30题(共计60分)第1题(分)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A ).A:k++B:k+=1C:++kD:k+1第2题(分)已知int i=5,执行语句i+=++i后,i的值是(C).A:10B:llC:12D:A、B、C都不对第3题(分)以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. ttinclude <>void main()/* Beginning */{ int r;float s;scanf (〃%d〃,&r);s=p*r*r; printf (〃s=%f\n〃,s);出错的原因是(D).A:注释语句书写位置错误B:存放圆半径的变量r不应该定义为整型C:输出语句中格式描述符非法D:计算圆面积的赋值语句中使用了非法变量第4题(分)〃\\\〃 ABC\〃 \\〃的长度是(B ).A:llB:7C:5D:3第5题(分)已知int j, i=l执行语句j=-i++;后,j的值是(C ).A:1B:2串中的内容为“abcdefg”时,c 所指数组中的内容应该为 “lg2f3e4dcba” 。

*/ttinclude <>#include <>#include <>void fun ( char char *b, char *c )int i , j;char ch;i = 0;j 二 strlen(b)-l;/**********FOUND**********/ch = b [ i];b[j] = ch; i++; j —;/**********FOUND**********/while ( *a &&*b )//此处&&改为| | (逻辑或)if ()*c =*a;c++;/**********FOUND**********/a+;)if ( *b )*c 二*b; c++;b++;*c = 0;main()char sl[100],s2[100],t[200];clrscr ();printf (,z \nEnter si string : 〃);scanf (〃如〃,si);printf (,z \nEnter s2 string : 〃);scanf (〃%s 〃, s2);fun( si, s2, t );printf (/z \nThe result is : %s\n 〃,t );i j四、程序设计共1题(共计20分)第1题(分)/*【程序设计】功能:判断一个整数w 的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。

(完整版)C语言各章节复习题(带答案)

一、C语言概述练习题选择1.一个C程序的执行是从。

A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。

A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。

A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。

A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。

A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。

A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。

A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。

c语言程序设计复习题库

复习题库题号题 目 1. 某铁桶厂应客户要求定做一批铁桶,客户给出了铁桶的规格,高30cm ,半径10cm ,共订做1500个铁桶。

计算出所需的原材料。

2.利用系统库函数实现数学运算,求x y 。

3.从键盘上输入一个小写字母,把它转变为大写字母再输出。

4. 设圆半径r=1.5,圆柱高h=3,求圆柱体积,圆柱底面积,圆柱表面积。

用scanf ()输入数据,输出计算结果。

输出时要有说明,结果取小数点后两位数字。

5.由键盘输入n 的值,编程计算并输出n!的值。

6. 让用户输入一个年份,判断改年份是否是闰年– 被4整除不能被100整除,或者被400整除7. 有一个函数⎪⎩⎪⎨⎧--=11312x x x y ())10()101(1≥<≤<x x x写程序,输入x 的值,输出y 相应的值。

8. 在学生成绩管理中,经常要将成绩的百分制转换成对应的等级制。

90分以上为A 等,80-89为B 等,70-79为C 等,60-69分为D 等,其余为E 等。

编写程序,根据输入的百分制成绩,输出对应的等级。

9. 计算从出生年份(例如1996)到当前年份(例如2014)共经过了多少闰年,输出所有的闰年年份。

10. 从1开始做自然数的累加,当其累加和超过1000的时候,共计累加了多少数?当时的累加和是多少?11.百钱买百鸡问题 12. 计算出自然数SIX 和NINE 满足条件SIX+SIX+SIX=NINE+NINE 的个数CNT,以及所有满足此条件的SIX 与NINE 。

13.求 3—100之间的全部素数14. 图形编程图形编程15. 某歌手大赛,共有10个评委打分,分数采用百分制,去掉一个最高分,去掉一个最低分,然后取平均分,得到歌手的成绩,编程实现。

16.让用户输入10个整数,对10个整数进行降序排列 17.对用户输入的10个整数逆序排列并输出 18. 输出Fibonacci 序列前20项** * ** * * * ** * * * * * ** * * * * * * * ** * * * * * * * * * *19.在一个字符数组中查找一个指定的字符,若数组中含有该字符,则输出该字符在数组中第一次出现的位置,否则输出-1.20.写一个函数,求sn=a+aa+aaa+aaaa+aaaaa.....的值,a的值n的值均由用户指定。

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

C语言复习题一、选择题:1.以下不是C语言的特点的是(B)A.C语言简洁、紧凑B.能够编制出功能复杂的程序C.C语言可以直接对硬件进行操作D.C语言移植性好2.以下不正确的C语言标识符是(D)。A.ABCB.abcC.a_bcD.ab.c3.一个c程序的执行是从(A).A.main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束4.以下不正确的语句(设有intp,q)是(D)。A.P*=3;B.p/=q;C.p十=3;D.p&&=q5.下列四组选项中,均不是C语言关键字的选项是(A).A.defineB.getcC.includeD.whileifcharsanfgotypeprintfcasepow6.下面四个选项中,均是合法整形常量的选项是(A).A.160B.-0xcdfC.-01D.-0x48a-0xffff01a986,0122e50110xe06680x7.下面四个选项中,均是不合法浮点数的选项是(B).A.160.B.123C.-.18D.-e30.122e4.2123e40.234e3.e50.01e38.若有代数式3ae/bc,则不正确的C语言表达式是(C)A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*39.若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为(A).A.7B.8C.9D.1010.若有定义:inta=7;floatx=205,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)。A.2.500000B.2.750000C.3.500000D.0.00000011.sizeof(float)是(B)。A.一个双精度型表达式B.一个整型表达式C.一种函数调用D.一个不合法的表达式12.设intn=3;则n十十的结果是(B)。A.2B.3C.4D.513.设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为(D)。A.floatB.charC.intD.double.14.若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是(D).A.scanf(“%d%d1x,%1e”,&x,&y,&z);B.scanf(“%2d*%d%1f”,&x,&y,&z);C.scanf(“%x%*d%o”,&x,&Y);D.scanf(“%x%o%6.2f”,&x,&y,&z);15.以下说法正确的是(D).A.输入项可以为一个实型常量,如scanf(“%f”,3.5);B.只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);D.当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);16.以下程序的执行结果是(A)。#includemain(){intsum,pad;sum=pad=5;pad=sum++;pad++;++pad;printf("%d\n",pad);}A.7B.6C.5D.417.巳知字母A的ASCII码是65,以下程序的执行结果是(D)。#includemain(){charc1='A',C2='Y';printf("%d,%d\n",c1,c2);A.A,YB.65,65C.65,90D.65,8918.为了避免嵌套的if-else语句的二义性,c语言规定else总是与(C)组成配对关系。A.缩排位置相同的ifB.在其之前末配对的ifC.在其之前未配对的最近的ifD.同一行上的if19.逻辑运算符两侧运算对象的数据类型(D).A.能是0或1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据20.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D).A.’x’&&’y’B.x<=yC.x||y+z&&y-zD.!((x<y)&&!z||1)21.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是(C).A.A%2==1B.!(A%2==0)C.!(A%2)D.A%222.以下不正确的if语句形式是(C).A.if(x>y&&x!=y);B.if(x==y)x十=y;C.if(x!=y)scanf(“%d”,&x)e1sescanf(”%d,&y);D.if(x<y){x十十;y十十;}23.以下if语句语法正确的是(B).A.if(x>0)printf(“%f“,x)elseprintf(“%f”,-x);B.if(x>0){x=x+y;printf(“%f“,x);}elseprintf(“%f”,-x)C.if(x>0){x=x+y;printf(“%f“,x);}elseprintf(“%f”,-x)D.if(x>0){x=x+y;printf(“%f“,x);}elseprintf(“%f”,-x)elseprintf(“%f”,-x);24.阅读以下程序main(){inta=5,b=0,c=0;if(a=b+c)printf(“***\n”);elseprintf(“$$$\n”);}以上程序(D).A.语法有错不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$25.以下程序运行结果是(C).main(){inta=100,x=10,y=20,ok1=5,ok2=0;if(xif(y!=10)If(!ok1)a=1;elseif(ok2)a=10;a=-1;printf(“%d\n”,a);}A.1B.0c.-1D.不确定26.执行以下程序段后,变量a,b,c得值分别是(B).intx=10,y=9;inta,b,c;a=(--x==y++)?–x:++y;b=x++;c=y;A.a=9,b=9,c=9B.a=8,b=8,c=10C.a=9,b=10,c=9D.a=1,b=11,c=1027.若w,x,y,z,m均为int型变量,则执行下面语句后的m值是(A).w=1;x=2;y=3;z=4;m=(wm=(mm=(mA.1B.2C.3D.428.语句while(!e);中的条件!e等价于(A)。A.e==0B.e!=1C.e!=0D.~e29.下面有关for循环的正确描述是(D)A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判定表达式C.在for循环中,不能用break语句跳出循环体D.for循环体语句中,可以包含多条语句,但要用花括号括起来30.C语言中while和do-while循环的主要区别是(A).A.do-while的循环体至少无条件执行一次B.while的循环控制条件比的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句31.以下程序段(C).x=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行二次C.循环执行二次D.有语法错误32.下面程序的运行结果是(B).#includemain(){inty=10;do{y--;}while(--y);printf(“%d\n”,y--);}A.-1B.1C.8D.033.以下正确的描述是(B).A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用goto语句34.c语言中(D)。A.不能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出C.do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环D.do—while语句构成的循环,当while语句中的表达式值为零时结束循环35.在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式36.在C语言中,一位数组的定义方式为:类型说明符数组名(D)。A.[常量表达]B.整型表达式C.[整型常量]或[整型表达式]D.[整型常量]37.以下不能对二维整形数组a进行正确初始化的语句是(C)。A.inta[2][3]={0};B.inta[][3]={{1,2},{0}};C.inta[2][3]={{1,2},{3,4},{5,6}};D.inta[][3]={1,2,3,4,5,6};38.若有说明:inta[][4]={0,0};则下面正确的叙述是(D)。A.数组a中每个元素均可得到初值0B.二维数组a的第一维大小为1C.因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1D.只有元素a0][0]和a[0][1]可得到初值0,其余元素均得不到初值039.若有说明:inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(B)。A.2B.3C.4D.无确定值40.下面程序的运行结果是(B)。charc[5]={‘a’,’b’,’\0’,’c’c,’\0’};printf(“%s”,c);}A.‘a’’b’B.abC.abcD.ab41.有两个字符数组a、b,则以下正确的输入语句是(B)。gets(a,b);scanf(“%s%s”,a,b);scanf(“%s%s”,&a,&b);gets(“a”),gets(“b”);

A.s[j+=]=s[i]B.s[++j]=s[i]C.s[j]=s[i];j++D.s[j]=s[i]42.若使用一维数组名作函数实参,则以下正确的说法是(A).A.必须在主调函数中说明此数组的大小B.实参数组类型与形参数组类型可以不匹配C.在被调函数中,不需要考虑形参数组的大小D.实参数组名与形参数组名必须一致43.以下正确的说法是(A).A.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效B.在该函数中有效

相关文档
最新文档