C语言期末复习题附答案.docx
- 文档编号:12449983
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:13
- 大小:20.31KB
C语言期末复习题附答案.docx
《C语言期末复习题附答案.docx》由会员分享,可在线阅读,更多相关《C语言期末复习题附答案.docx(13页珍藏版)》请在冰豆网上搜索。
C语言期末复习题附答案
1、凡是函数中未指定存储类型的局部变量,其隐含的存储类型为(A)。
A、autoB、static
C、externD、register
2、若有定义:
int*ptr[6];则标识符ptr(B)。
A、是一个指向整形变量的指针B、是一个指针数组名
C、是一个指针,它指向一个含有四个整形元素的一维数组
D、说明不合法
3、结构化程序设计的基本结构主要是(D)
A、分支结构、平行结构、循环结构B、分支结构、函数结构、循环结构
C、平行结构、选择结构、函数结构D、顺序结构、选择结构、循环结构
4、一个C程序中,主函数的个数是(B)。
A、2个B、1个
C、任意个D、10个
5、在VisualC++6、0环境下,C源程序文件名的默认后缀是(A)。
A、、cppB、、exe
C、、objD、、dsp
6、根据C语言的语法规则,下列(B)是用户定义的合法标识符
A、elseB、ElseC、user$2D、5_object
7、以下叙述中正确的是(C)。
A、break语句只能用于switch语句体中
B、continue语句的作用是:
使程序的执行流程跳出包含它的所有循环
C、break语句只能用在循环体内和switch语句体内
D、在循环体内使用break语句和continue语句的作用相同
8、若定义intx=136,y;,执行语句y=x/10%10;后y的值是(B)
A、1B、3C、6D、0
9、下列关于C语言注释的叙述中错误的是(D)。
A、以"/*"开头并以"*/"结尾的字符串为C语言的注释内容
B、注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义
C、程序编译时,不对注释作任何处理
D、程序编译时,需要对注释进行处理
10、若有定义:
intx,a;则语句x=(a=3,a+1);运行后,x、a的值依次为(C)。
A、3,3 B、4,4 C、4,3 D、3,4
11、以下程序运行结果是(A)
voidmain()
{intx=28;
do
{
printf("%d",x--);
}while(!
x);
}
A、28B、27C、26D、0
12、如果a=1,b=2,c=3,d=4,则条件表达式a
a:
c c: d的值为(A)。 A、1 B、2 C、3 D、4 13、下列关于C语言注释的叙述中错误的是(D)。 A、以"/*"开头并以"*/"结尾的字符串为C语言的注释内容 B、注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义 C、程序编译时,不对注释作任何处理 D、程序编译时,需要对注释进行处理 14、定义如下变量和数组: intk; inta[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是(A) for(k=0;k<3;k++)printf(“%d”,a[k][2-k]); A、357B、369C、159D、147 15、C语言对嵌套if语句的规定是: else总是与(D)配对。 A、其之前最近的if B、第一个if C、缩进位置相同的if D、其之前最近的且没与其他else配对的if 16、有以下程序段 inta,b,c; a=10;b=50;c=30; if(a>b)a=b,b=c,c=a; printf(〞a=%db=%dc=%d\n〞,a,b,c); 程序的输出结果是(B)。 A、a=10b=50c=10B、a=10b=50c=30 C、a=10b=30c=10D、a=50b=30c=50 17、判断字符串a和b是否相等,应当使用(D) A、if(a==b)B、if(a=b)C、if(strcpy(a,b))D、if(strcmp(a,b)) 18、以下结果为整数的表达式(设有inti;charc;floatf;)(B)。 A、i+f B、i*c C、c+f D、i+c+f 19、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)。 A、INPUTx、y、z;B、scanf("%d%d%d",&x,&y,&z); C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z); 20、下列叙述正确的是(B) A、函数的定义允许嵌套,但函数的调用不允许嵌套 B、函数的定义不允许嵌套,但函数的调用允许嵌套 C、函数的定义和调用都不允许嵌套 D、函数的定义和调用都允许嵌套 21、当执行以下程序时,(C)。 #include voidmain() {inta; while(a=5) printf("%d",a--); } A、循环体将执行5次B、循环体将执行0次 C、死循环D、循环体将执行4次 22、若已定义: int*p,a;,以下正确的语句是(D) A、p=*a;B、a=p;C、a=*p;D、p=&a; 23、如果在一个函数中的复合语句中定义了一个变量,则该变量(A)。 A、只在该复合语句中有效B、在该函数中有效 C、在本程序范围内有效D、为非法变量 24、以下叙述中错误的是(B)。 A、用户自定义的函数中可以没有return语句 B、用户自定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值 C、用户自定义的函数中若没有return语句,则应当定义函数为void类型 D、函数的return语句中可以没有表达式 25、若有说明: ints[15];则对a数组元素的正确引用是(D)。 A、s[15]B、s[3、5]C、s(5)D、s[15-15] 26、执行inta[][4]={2,3,5,7,8,9,11,13,15};语句后,a[1][2]的值是(A) A、11B、3C、5D、9 27、下面是s的初如始化,其中不正确的是(D)。 A、chars[5]={"abc"};B、chars[5]={‘a’,‘b’,‘c’}; C、chars[5]="";D、chars[5]="abcdef"; 28、以下程序运行结果是(B) #defineM(x,y,z)x*y*z #include voidmain() { inta=1,b=2,c=3; printf("%d\n",M(a+b,b+c,c+a)); } A、60B、15C、20D、程序错误 29、在C语言中,只有在使用时才占用内存单元的变量,其存储类型是(A)。 A、auto和registerB、extern和register C、auto和staticD、static和register 30、如下表述中,判断字符数组a和b中所存储的字符串是否相等的选项是(D)。 A、a==bB、a=b C、strcpy(a,b)D、strcmp(a,b) 31、在以下关于带参数宏定义的描述中,正确的说法是(A)。 A、宏名和它的参数都无类型B、宏名有类型,它的参数无类型 C、宏名无类型,它的参数有类型D、宏名和它的参数都有类型 32、在C语言中,二维数组元素在内存中的存放顺序是(A) A、按行存放B、按列存放 C、由用户自己定义D、由编译器决定 33、以下不正确的叙述是(C)。 A、在C程序中,逗号运算符的优先级最低 B、在C程序中,APH和aph是两个不同的变量 C、在C程序中,无论是整数还是实数,都能被准确无误的表示 D、在C程序中,%是只能用于整数运算的运算符 34、下面正确的函数定义形式是(A)。 A、doublefun(intx,inty){……} B、doublefun(intx;inty){……} C、doublefun(intx,inty);{……} D、doublefun(intx,y;){……} 35、在执行charstr[10]={"key\0word"};语句后,strlen(str)的结果是(A) A、3B、4C、5D、8 36、下面程序的运行结果是(B) voidmain() { intb[5]={1,3,5,7,9},*p; p=b; printf(“%d”,*(p+1)); } A、1B、3C、5D、7 37、以下if语句错误的是(A)。 A、if(x B、if(x)x+=y; C、if(x D、if(x! =y)scanf("%d",&x);elsex++; 38、判断char型变量c是否为小写字母的正确表达式为(D) A、’a’<=c<=’z’B、(c>=a)&&(c<=z) C、(‘a’<=c)||(‘z’>=c)D、(c>=’a’)&&(c<=’z’) 39、指向一个变量的指针,其存储的数据是该变量的(B)。 A、值 B、地址 C、名称 D、一个标志 40、若已定义: inta=3,b=4,c=5 ;,则下面表达式中值为0的是(D) A、'a'&&'b'B、a<=bC、a||b+c&&b-cD、! ((a c||1) 41、以下对二维数组s进行初始化的语句错误的是(C)。 A、ints[2][3]={0}; B、ints[][3]={1,2,3,4,5}; C、ints[2][3]={{1,2},{3,4},{5,6}}; D、ints[][3]={{1,2},{0}}; 42、若有说明语句int(*ptr)();其含义是(C)。 A、ptr是一个指向一维数组的指针变量 B、ptr是指针变量,指向一个整形变量 C、一个指向函数的指针,该函数的返回值是一个整数 D、以上都不对 43、若x、y均为double型变量,正确的输入函数调用是(B) A、scanf("%f%f",&x,&y);B、scanf("%d%d",&x,&y); C、scanf("%lf%lf",&x,&y);D、scanf("%lf%lf",x,y); 44、在C语言中,下面哪个标识符是合法的(B) A、ifB、dayC、#25D、a[3] 45、x为int型变量,且x=65,不正确的输出函数调用是(D) A、printf(“%d”,x);B、printf(“%3d”,x);C、printf(“%c”,x);D、printf(“%s”,x); 46、以下能正确定义且赋初值的语句是(B) A、intn1=n2=10;B、charc=32;C、floatf=f+1、1D、doublex=12、3E2、5 47、下列程序段的执行结果为(C)。 #include main() {intx=3; do {printf("%3d\n",x-=2); }while(! (--x)); } A、1B、30C、1-2D、死循环 48、C语言对嵌入if语句的规定是: else总是与(D)配对 A、其之前最近的ifB、第一个if C、缩进位置相同的ifD、其之前最近且不带else的if 49、调用函数时,基本类型变量作函数实参,它和对应的形参(A)。 A、各自占用独立的存储单元B、共用一个存储单元 C、同名时才能共用在存储单元D、不占用存储单元 50、以下程序: #include voidmain() { intp,a=5; if(p=a! =0) printf(“%d\n”,p); else printf(“%d\n”,p+2); }程序输出结果是(B) A、0B、1C、2D、5 51、若有说明: ints[4][5];则对a数组元素的非法引用是(D) A、s[0][2*1]B、s[1][3]C、s[4-2][0]D、s[0][5] 52、若有说明语句int(*ptr)();其含义是(C)。 A、ptr是一个指向一维数组的指针变量 B、ptr是指针变量,指向一个整形变量 C、一个指向函数的指针,该函数的返回值是一个整数 D、以上都不对 53、当执行以下程序时,(C) #include voidmain() { inta; while(a=5) printf("%d",a--); } A、循环体将执行5次B、循环体将执行0次 C、循环体将执行无限次D、系统会死机 54、以下正确的函数定义形式是(A) A、intfun(intx,inty)B、intfun(intx;inty)C、intfun(intx,y)D、intfun(intx,y;) 55、在一个源文件中定义的全局变量的作用域为(D) A、本文件的全部范围B、本程序的全部范围 C、本函数的全部范围D、从定义该变量的位置开始至本文件结束为止 56、以下程序运行的结果是(B) #include #defineMIN(x,y)(x)<(y)? (x): (y) voidmain() {inti=10,j=15,k; k=10*MIN(i,j); printf(“%d\n”,k); } A、10B、15C、100D、150 57、字符串”Iamastudent、”在存储单元中占(C)字节 A、3B、4C、16D、17 58、若定义一个结构体变量,则系统分配给它的内存是(A)。 A、各成员所需内存量的总和 B、结构中第一个成员所需内存量 C、成员中占内存量最大者所需的容量 D、结构中最后一个成员所需内存量 59、以下对二维数组a的正确说明是(C)。 A、intc[5][];B、floatc(5,4); C、doublec[1][4];D、floatc(5)(4); 60、设有intx,y;以下语句判断x和y是否相等,正确的说法是该语句(B) if(x=y)printf("xisequaltoy、"); A、语法错B、不能判断x和y是否相等 C、编译出错D、能判断x和y是否相等 61、以下对C语言中共用体类型数据的叙述正确的是(C)。 A、可以对共用体变量名直接赋值 B、一个共用体变量中可以同时存放其所有成员 C、一个共用体变量中不可能同时存放其所有成员 D、共用体类型定义中不能出现结构体类型的成员 62、调用函数时,基本类型变量作函数实参,它和对应的形参(A) A、各自占用独立的存储单元B、共占用一个存储单元 C、同名时才能共用存储单元D、不占用存储单元 63、要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。 能正确实现此功能的函数是(A)。 A、funa(int*x,int*y)B、funb(intx,inty) {intp;{intt; p=*x;*x=*y;*y=p;}t=x;x=y;y=t;} C、func(int*x,int*y)D、fund(intx,inty) {*x=*y;*y=*x;}{*x=*x+*y;*y=*x-*y;*x=*x-*y;} 64、如果在一个函数中的复合语句中定义了一个变量,则该变量(A) A、只在该复合语句中有效B、在该函数中有效 C、在本程序范围内有效D、为非法变量 65、在一个源文件中定义的全局变量的作用域为(D)。 A、本文件的全部范围 B、本程序的全部范围 C、本函数的全部范围 D、从定义该变量的位置开始至本文件结束为止 66、在以下关于带参数宏定义的描述中,正确的说法是(A)。 A、宏名和它的参数都无类型B、宏名有类型,它的参数无类型 C、宏名无类型,它的参数有类型D、宏名和它的参数都有类型 67、设有如下程序段 chars[20]="Bejing",*p; p=s; 则执行p=s;语句后,以下叙述正确的是(A)。 A、可以用*p表示s[0] B、数组s中元素的个数和p所指字符串长度相等 C、s和p都是指针变量 D、数组s中的内容和指针变量p中的内容相等
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 复习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)