C语言章节复习题

合集下载

C语言1-5章复习题及参考答案

C语言1-5章复习题及参考答案

一.选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。

A .-3 B.9 C.-12 D.62、若有定义:int a=8, b=5, c; 执行语句 c=a/b+0.4; 后,c的值为()。

A .1.4 B.1 C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是()。

A .6 B.3 C.死循环 D.04、下列关于表达式的描述中,错误的是()。

A . 常量和变量都是表达式。

B. 运算符类型对应表达式的类型。

C. 每一个表达式都有自己的值。

D. 表达式必须以分号结尾。

5、C语言中,合法的长整型常数是()。

A . '\t' B.” A” C.65 D.a6、若已定义 x 和 y为double 类型,则表达式 x=1;y=(x+3)/2 的值是()。

A .1 B.2 C.2.00000 D.2.500007、表达式:10!=9的值是()。

A . true B. 非零值 C.0 D.18、以下程序的输出结果是()。

#include<stdio.h>void main(){printf("%d\n", NULL);}A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。

()A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10、假设 int b=2; 表达式(b>>2)/(b>>1)的值是()。

A .0 B.2 C.4 D.811、关于语句printf(“hello world\n”);,下列描述中错误的是()。

A . printf()是格式化输出函数,用于输出信息。

B. printf()括号中的内容为函数的参数。

C语言复习题

C语言复习题

《C语言》复习题一、选择题(1) 有如下程序main(){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}运行该程序的输出结果是: DA) 3 4 B) 4 2 C) 4 3 D) 3 3(第三章输出语句)(2)当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是: CA)c=b=a;B)(a=c)‖(b=c);C)(a=c)&&(b=c);D)a=c=b;(第四章关系表达式)(3)在以下一组运算符中,优先级最高的运算符是: CA)<= B)=C)% D)&&(第四章运算符的优先级)(4) 请选出合法的C语言赋值语句: BA) a=b=58 B) i++;C) a=58,b=58 D) k=int(a+b)(第三章赋值语句)(5)以下说法中正确的是: CA)#define和printf都是C语句B)#define是C语句,而printf不是C)printf是C语句,但#define不是D)#define和printf都不是C语句(第三章语句概述)(6)若有以下定义: Dchar a; int b;float c; double d;则表达式a*b+d-c值的类型为A) float B) int C) char D) double(第二章类型混合运算)(7)若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是: CA)1 B)2C)2.0 D)2.5(第二章类型混合运算)(8)有以下程序#includemain(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是: AA) 2,1 B) 3,2 C) 4,3 D) 2,-1(第四章逻辑运算符)(9) 以下程序运行后,输出结果是: CA) cde B) 字符c的ASCII码值C) 字符c的地址D) 出错main(){ char *s="abcde";s+=2;printf("%ld\n",s);}(第九章指针的概念)(10)若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为:DA)a<>0 B)!aC)a=0 D)a(第4章条件表达式)(11)有如下程序段,其输出结果是什么: Amain( ){int a=1,b=3,c=5;if (c=a+b)printf ("yes\n");else printf("no\n"); }A) yes B) no C) yes\n D) no\n(第4章条件语句)(12) 假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表1示代数式----- 的表达式是: DabcA) 1/a*b*cB) 1/(a*b*c)C) 1/a/b/(float)cD) 1.0/a/b/c(第二章类型混合运算)(13)若i ,j已定义为int类型,则以下程序段中内循环体的总的执行次数是: Afor (i=5;i;i--)for(j=0;j<4;j++){...}A)20 B)15C)24 D)16(第五章for循环语句)(14)下面哪个程序段不是死循环: C(A) a=0; sum=0;while(a=1){sum=sum+a;a++;}(B) {int I,sum=0;For(i=1;i<=3;sum++)sum+=I;}(C) sum=0;for(i=1;i<10;i++);sum=sum+i;(D) sum=0;for(i=1; ;i++)sum=sum+i;(第五章for循环语句)15、设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0]则下列能够正确表示数组元素a[1][2]的表达式是: DA)*((*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)16、不能把字符串:Hello!赋给数组b的语句是: BA)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!";17、设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0]则下列能够正确表示数组元素a[1][2]的表达式是: DA)*((*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)18、请选出以下语句的输出结果: Aprintf("%d\n",strlen("\t\"\065\xff\n"));A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出(19)假定所有变量均已正确说明,下列程序段运行后x的值是: Ba=b=c=0;x=35;if(!a)x--;else if(b);if(c)x=3;else x=4;A)34 B)4 C)35 D)3(第四章if语句)(20) 运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为: CA) 2,0 B) 5,0 C) 5,5 D) 2,5#include<stdio,h>main(){ int v1=0,v2=0;char ch;while((ch=getchar())!='#')switch(ch){ case 'a';case 'h';default; v1++;case '0'; v2++;}printf("%d,%d\n",v1,v2);}(第四章switch语句)(21) 执行以下程序段时: AA) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误x=-1;do {x=x*x; } while(! x);(第五章do_whule语句)(22)执行下面的程序后,a的值为: Bmain(){ int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}}A)7 B)8C)9 D)10(第5章break,continue 语句)23) 下面能正确进行字符串赋值操作的语句是: CA) char s[5]={"ABCDE"}; B) char s[5]={'A','B','C','D','E'};C) char *s;s="ABCDEF"; D) char *s; scanf("%s",s);(第6章字符数组的定义;第9章字符串指针)(24)不能把字符串:Hello!赋给数组b的语句是: BA)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章字符数组的使用)(25)函数调用:strcat(strcpy(str1,str2),str3)的功能是: CA)将串str1复制到串str2中后再连接到串str3之后B)将串str1连接到串str2之后再复制到串str3之后C)将串str2复制到串str1中后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1复制到串str3中(第6章字符串处理函数)(26)给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为: CA) 数组X和数组Y等价B) 数组x和数组Y的长度相同C) 数组X的长度大于数组Y的长度D) 数组X的长度小于数组Y的长度(第6章字符数组的定义)(27)以下程序的输出结果是: DA)AfghdEFG B)Abfhd C)Afghd D)Afgd#includemain( ){ char *p1,*p2,str[50]="ABCDEFG";p1="abcd";p2="efgh";strcpy(str+1,p2+1);strcpy(str+3,p1+3);printf("%s",str);}(第6章字符串处理函数;第9章字符串指针)(28)下面哪个程序段编译会出错: DA) max(int x,int y,int *z) B) max(int x, int y){ *z=x>y?x:y;} {return x>y?x:y;}C) max(int x,int y) D) int max(int x, y){ int z; { int zz=x>y?x:y; z=x>y?x:y;return z;} return z;}(29)下列程序执行后输出的结果是: D#include 〈stdio.h〉f(int a){ int b=0;static c=3:a=c+ +,b+ +;returu(a);}main( ){ int a=2,i,k;for(i=0;i<2;i+ +)k=f(a+ +);printf("%d\n",k);}A)3 B)0 C)5 D)4(第7章静态变量)(30)下列程序执行后输出的结果是: Aint d=1;fun (int q){ int d=5;d + =q+ +;printf("%d".d);}main( ){ int a=3;fun(a);d + = a + +;printf("%d\n",d);}A)8 4 B)9 6 C)9 4 D)8 5(第7章函数调用;第3章复合赋值运算符)(31)以下程序的输出结果是: Dmain(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A)10 10 B)9 9C)9 10 D)10 9(第7章函数调用时,参数结合方式:右结合)(32)有以下程序int fun(int x , int y , int *cp , int *dp){ *cp=x+y; *dp=x-y; }main(){ int a, b, c, d;a=30; b=50;fun(a,b,&c,&d);printf("%d,%d\n", c, d);}输出结果是: CA)50,30 B)30,50 C)80,-20 D)80,20(第7章函数调用;第9章指针变量做参数)(33)执行下面的程序后,a的值是: B#define SQR(X) X*Xmain( ){ int a=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}A)10 B)1 C)9 D)0(第8章带参宏定义)(34) 以下有关宏替换的叙述不正确的是: DA) 宏替换不占用运行时间 B)宏名无类型C)宏替换只是字符替换 D)宏名必须用大写字母表示(第8章宏定义)(35)C语言的编译系统对宏命令的处理是: DA) 在程序运行时进行的B) 在程序连接时进行的C) 和C程序中的其它语句同时进行编译的D) 在对源程序中其它成份正式编译之前进行的(第8章宏定义运行特点)(36)若有宏定义如下:#define X 5#define Y X+1#define Z Y * X / 2则执行以下printf语句后,输出结果是: Dint a; a=Y;Printf("%d\n", Z);Printf("%d\n", - - a);A) 7 B) 12 C) 12 D) 76 6 5 5(第7章函数调用;第8章带参宏定义)37、若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是: DA) &t[3][2]B) t[3][2] C) t[1][0] D) t[2]+138、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是: CA)1 B)2C)2.0 D)2.539、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是: CA)c=b=a;B)(a=c)‖(b=c);C)(a=c)&&(b=c);D)a=c=b;40、C语言的编译系统对宏命令的处理是: DA) 在程序运行时进行的B) 在程序连接时进行的C) 和C程序中的其它语句同时进行编译的D) 在对源程序中其它成份正式编译之前进行的(41)请读程序:#define ADD(x) x+xmain(){int m=1, n=2, k=3;int sum=ADD(m+n) * k;printf("sum=%d", sum);}上面程序的运行结果是: BA) sum=9 B) sum=10 C) sum=12 D) sum=18(第8章带参宏定义)(42)在宏定义 #define PI 3.14159中,用宏名PI代替一个: DA) 常量 B)单精度数 C)双精度数 D)字符串(第8章宏定义)(43)设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0]则下列能够正确表示数组元素a[1][2]的表达式是: DA)*((*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)(第9章数组指针与指向主组的指针)44、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假“的表达式是___C____。

(完整版)C语言各章练习题

(完整版)C语言各章练习题

目录第一章程序设计和C语言 (2)第二章最简单的C程序设计 (2)第三章选择结构程序设计 (4)第四章循环结构程序设计 (7)第五章数组 (11)第六章函数 (14)第七章指针 (18)第一章程序设计和C语言一、选择题:1.一个C程序的执行是从( )A、本程序的main函数开始,到main函数结束B、本文件第一个函数开始,到本文件的最后一个函数结束C、本程序的main函数开始,到本文件的最后一个函数结束D、本文件的第一个函数开始,到本文件的main结束2.以下说法不正确的是()A、一个C源程序可由一个或多个函数组成B、一个C程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面3.C语言规定:在一个源程序中,main函数的位置()A、必须在开始B、必须在系统调用的库函数的位置C、可以任意D、必须在最后4.源程序program.c经编译产生的目标文件和连接后产生的可执行文件是( )A、program.bak和program.objB、program.obj和program.exeC、program.exl和program.cD、program.bak和prgram.exe第二章最简单的C程序设计一、选择题1.是合法的用户自定义标识符的( )A、ah-spksB、doubleC、<ctrl>D、_myapple2.以下正确的C语言标识符是()A、%xB、a+bC、a123D、test!3.以下不能定义为用户标识符的是( )A、V oidB、b_2C、intD、name4.以下选项中可作为C语言合法整数的是( )A、11010(B)B、0583C、x2b2D、0xafb5.VC++6.0中的短整型数值在计算机中占用的字节个数是( )A、1B、2C、3D、46.设short int型的数据长度为2个字节,则unsigned short 类型数据的取值范围是()P34A、均为2个字节B、0至65535C、-3276至32767D、-256至255 7.以下选项中可作为C语言合法常量的是()(指数E或e前必须有数字,后面必须有整数)A、-80.0B、-080C、-8e1.2D、-80.0e8.在VC++6.0编译环境下,下列式中,值不为4的表达式是()P34,double为8字节A、sizeof(unsigned long)B、sizeof(long)C、sizeof(unsigned int)D、sizeof(double)9.设有说明语句:char a=’\123’;则变量a( )一个ascii字符A、包含1个字符B、包含2个字符C、3个字符D、说明不合法10.设x为一数字字符,则其所对应的十进制数值为()。

C语言章节习题集(全).docx

C语言章节习题集(全).docx

C语言程序设计第一、二章单项选择题1.将汇编语言编写的程序翻译成目标程序的程序是()A)解释 B)编译 C)汇编 D)目标2.不属于面向机器语言的是()A)符号语言 B)二进制语言 C)汇编语言 D)C 语言3.将高级语言编写的程序翻译成目标程序的程序是()。

A)解释 B)编译 C)汇编 D)二进制4.不属于高级语言的是()。

A)BASICB)CC)ALGOLD)符号语言5.程序段的基本结构中,不包含()。

A)函数结构 B)循环结构 C)顺序结构 D)分支结构6、C语言源程序的最小单位是()。

A、程序行B、语句C、函数D、字符7、以下说法正确的是()。

A、在C语言中,要调用的函数必须在main() 函数中定义B、C语言程序总是从第一个定义的函数开始执行C、C语言程序中, main() 函数必须放在程序的开始部分D、C语言程序总是从main() 函数开始执行8、以下对 C语言描述中正确的是()。

A、C语言源程序中可以有重名的函数B、C语言源程序中要求每行只能书写一条语句C、C语言源程序中,注释可以出现在任何位置D、最小的C源程序中没有任何内容9、对 C语言源程序执行过程描述正确的是()。

A、从main()函数开始执行,到main() 函数结束B、从程序的第一个函数开始执行,到最后一个函数结束C、从 main 函数开始执行,到源程序的最后一个函数结束D、从第一个函数开始执行,到 main 函数结束。

填空题1.能完成某个任务的、有始有终的 C语言 ___称为 C 程序。

2.用来编写程序的计算机语言称为 ____。

3.高级语言编写的程序称为 ____。

4.用C语言编写的源程序简称为“C程序”,扩展名规定为“____”。

5.C 程序经过“编译”后将获得扩展名为“OBJ”的 ____。

6.C 程序经过编译后获得的中间代码文件还需要经过____,才能成为可执行的“程序”,目标程序的扩展名规定为"EXE"。

c语言各章习题

c语言各章习题

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

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

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

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

A)_HJ B)9_student C)long D)LINE 19.以下说法正确的是。

A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分10.不是C语言提供的合法关键字。

A)switch B)print C)case D)default二、填空题1.一个C程序至少包含一个,即。

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

3.函数体的范围是。

C语言全部章节习题集(参考答案)

C语言全部章节习题集(参考答案)
}
选择结构答案
一、单项选择题
1.B 2.A 3.D 4.C 5.D 6.B 7.C
二、填空题
1. 5 5 4
5 5 4
3 3 4
2. 4 0
3. VeryGood
Good
VeryGood
A. 8 B. 4 C. 2 D. 出错
14、设a=1,b=2,c=3,d=4,则表达式:a<b? a : c<d? a : d的结果为( D )。
A. 4 B. 3 C. 2 D. 1
15、设a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是( A )。
{ float a,b,temp;
printf("input a and b:");
scanf("%d,%d",&a ,&b);
temp = a; a = b; b = temp;
printf("a=%d , b=%d\n", a , b);
scanf(“%f”,&t);
if(t>=90) ch=’A’;
else if(t>=80) ch=’B’;
24、下列不正确的转义字符是( C )。
A. \\ B. \' C. 074 D. \0
二、填空题:
1、C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。
2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。
5、判断变量 a、b 的值均不为 0 的逻辑表达式为a!=0&&b!=0 。

C语言1-5章复习题及参考答案

C语言1-5章复习题及参考答案

一.选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。

A .-3 B.9 C.-12 D.62、若有定义:int a=8, b=5, c; 执行语句c=a/b+0.4; 后,c的值为()。

A .1.4 B.1 C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是()。

A .6 B.3 C.死循环 D.04、下列关于表达式的描述中,错误的是()。

A . 常量和变量都是表达式。

B. 运算符类型对应表达式的类型。

C. 每一个表达式都有自己的值。

D. 表达式必须以分号结尾。

5、C语言中,合法的长整型常数是()。

A . '\t' B.” A” C.65 D.a6、若已定义x 和y为double 类型,则表达式x=1;y=(x+3)/2 的值是()。

A .1 B.2 C.2.00000 D.2.500007、表达式:10!=9的值是()。

A . true B. 非零值 C.0 D.18、以下程序的输出结果是()。

#include<stdio.h>void main(){printf("%d\n", NULL);}A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。

()A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10、假设int b=2; 表达式(b>>2)/(b>>1)的值是()。

A .0 B.2 C.4 D.811、关于语句printf(“hello world\n”);,下列描述中错误的是()。

A . printf()是格式化输出函数,用于输出信息。

B. printf()括号中的内容为函数的参数。

C语言章节习题集(全)

C语言章节习题集(全)

C语言程序设计第一、二章单项选择题1.将汇编语言编写的程序翻译成目标程序的程序是()A)解释B)编译C)汇编D)目标2.不属于面向机器语言的是()A)符号语言B)二进制语言C)3.A)解释B)编译C)汇编D)二进制4.不属于高级语言的是()。

5.A)D)分支结构6、CA7A、在main()函数中定义B、C语言程序总是从第一个定义的函数开始执行C、C语言程序中,main()函数必须放在程序的开始部分D、C语言程序总是从main()函数开始执行8、以下对C语言描述中正确的是()。

A、C语言源程序中可以有重名的函数B、C语言源程序中要求每行只能书写一条语句C、C语言源程序中,注释可以出现在任何位置D、最小的C源程序中没有任何内容9、对C语言源程序执行过程描述正确的是()。

A、从main()函数开始执行,到main()函数结束B、从程序的第一个函数开始执行,到最后一个函数结束C、从mainD、填空题1.2.3.4.用C C程序”,扩展名规定为“____”。

5.C OBJ”的____。

6.C____,才能"EXE"。

7、89.选择结构是____选择某个操作来执行的—种程序结构。

10.选择结构可以分为____、双分支结构和多分支结构。

11.循环结构又可分为当型循环、____及次数型循环。

第三章数据类型、运算符与表达式单项选择题1.以下程序的输出结果是。

main(){inta=10,b=10;printf("%d,%d",a--,++b);}A)10,11B)10,10 C)9,9D)9,112.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是A)'a'&&'b'B)a<=b3.设ch是char型变量,其值为4.main();}A)003B)012 C)103D)1125.字符串“\t\n\\\045\’”的长度为。

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

一、选择题:1、一个C程序的执行是从( A )。

A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在 C 语言中,每个语句必须以( D )结束。

A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。

A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个C 语言程序是由( B )。

A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是( D )。

A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。

A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件二、填空题:1、C 语言只有 32 个关键字和 9 种控制语句。

2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。

3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。

4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函数 printf 完成的。

5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。

6、C 语言的标识符只能由字母、数字和下划线三种字符组成。

第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的 C 语言浮点型常量是( C )。

A. 160.B. 0.12C. 2e4.2D. 0.02、以下选项中,( D )是不正确的 C 语言字符型常量。

A. 'a'B. '\x41'C. '\101'D. "a"3、在 C 语言中,字符型数据在计算机内存中,以字符的( C )形式存储。

A. 原码B. 反码C. ASCII 码D. BCD码4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是( C )。

x=(i=4,j=16,k=32)A. 4B. 16C.32D.525、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( B )。

A. 算术运算、赋值运算、关系运算B. 算术运算、关系运算、赋值运算C. 关系运算、赋值运算、算术运算D. 关系运算、算术运算、赋值运算6、若有代数式,则不正确的C语言表达式是( C )。

A.a/b/c*e*3B. 3*a*e/b/cC.3*a*e/b*cD. a*e/c/b*37、表达式!x||a==b 等效于( D )。

A. !((x||a)==b)B. !(x||y)==bC. !(x||(a==b))D. (!x)||(a==b)8、设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是( A)。

A. 0,0B. 0,1C. 1,0D. 1,19、设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是( B )。

A. 3B. 0C. 9D. -1210、在以下一组运算符中,优先级最低的运算符是( D )。

A. *B. !=C. +D. =11、设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是( B )。

A. 6B. 12C. 15D. 表达式出错12、若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是( C )。

A. 1B. 2C. 2.0D. 2.513、sizeof (double)的结果值是( A )。

A. 8B. 4C. 2D. 出错14、设a=1,b=2,c=3,d=4,则表达式:a<b? a : c<d? a : d的结果为( D )。

A. 4B. 3C. 2D. 115、设a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是( A )。

A. 10<a<15B. a= =11|| a= =12 || a= =13 || a= =14C. a>10 && a<15D. !(a<=10) && !(a>=15)16、设 f是实型变量,下列表达式中不是逗号表达式的是( D )。

A. f= 3.2, 1.0B. f>0, f<10C. f=2.0, f>0D. f=(3.2, 1.0)17、表达式18/4*sqrt(4.0)/8值的数据类型是( C )。

A. intB. floatC. doubleD. 不确定18、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句C2=’A’+’6’-‘3’;后c2中的值是( A )。

A. DB. 68C. 不确定的值D. C19、以下用户标识符中,合法的是( B )。

A. intB. nitC. 123D. a+b20、C 语言中,要求运算对象只能为整数的运算符是( A )。

A. %B. /C. >D. *21、若有说明语句:char c='\72';则变量c在内存占用的字节数是( A )。

A. 1B. 2C. 3D. 422、字符串"ABC"在内存占用的字节数是( B )。

A. 3B. 4C. 6D. 823、要为字符型变量 a赋初值,下列语句中哪一个是正确的( B )。

A. char a="3";B. char a=’3’;C. char a=%;D. char a=*;24、下列不正确的转义字符是( C )。

A. \\B. \'C. 074D. \0二、填空题:1、C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。

2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。

3、设 c='w',a=1,b=2,d=-5, 则表达式 'x'+1>c, 'y'!=c+2, -a-5*b<=d+1,b==a=2的值分别为 1 、 0 、 1 、 1 。

4、设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为 2.5 。

5、判断变量 a、b 的值均不为 0 的逻辑表达式为a!=0&&b!=0 。

6、求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 的值依次为 4,4,10,6 。

7、求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为18,3,3 。

8、数学式a/(b*c)的 C 语言表达式 a/b/c 。

三、编程题:1、设长方形的高为 1.5,宽为 2.3,编程求该长方形的周长和面积。

2、编写一个程序,将大写字母 A转换为小写字母 a。

1.main(){float x=1.5,y=2.3;printf(“area is %6.2f\n”,x*y);}2.main(){char c=’A’;printf(“%d”,c+32);}1. 单项选择题(1) int a[4]={5,3,8,9};其中 a[3]的值为( )。

DA. 5B. 3C. 8D. 9(2) 以下 4 个字符串函数中,( )所在的头文件与其他 3 个不同。

AA. getsB. strcpyC. strlenD. strcmp(3) 以下 4 个数组定义中,( )是错误的。

DA. int a[7];B. #define N 5 long b[N];C. char c[5];D. int n,d[n];(4) 对字符数组进行初始化,( )形式是错误。

BA. char c1[ ]={'1', '2', '3'};B. char c2[ ]=123;C. char c3[ ]={ '1', '2', '3', '\0'};D. char c4[ ]="123";(5) 在数组中,数组名表示( )。

AA. 数组第 1 个元素的首地址B.数组第 2 个元素的首地址C. 数组所有元素的首地址D.数组最后 1 个元素的首地址(6) 若有以下数组说明,则数值最小的和最大的元素下标分别是( )。

Bint a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};A. 1,12B. 0,11C. 1,11D. 0,12(7) 若有以下说明,则数值为 4 的表达式是( )。

Dint a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;A. a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c](8) 设有定义:char s[12] = "string" ; 则printf( "%d\n",strlen(s)); 的输出是( )。

AA. 6B. 7C. 11D. 12(9) 设有定义:char s[12] = "string"; 则printf("%d\n ", sizeof(s)); 的输出是( )。

DA. 6B. 7C. 11D. 12(10) 合法的数组定义是( )。

AA. char a[ ]= "string " ;B. int a[5] ={0,1,2,3,4,5};C. char a= "string " ;D. char a[ ]={0,1,2,3,4,5}(11) 合法的数组定义是( )。

DA. int a[3][ ]={0,1,2,3,4,5};B. int a[ ][3] ={0,1,2,3,4};C. int a[2][3]={0,1,2,3,4,5,6};D. int a[2][3]={0,1,2,3,4,5,};(12) 下列语句中,正确的是 ( )。

相关文档
最新文档