《高级语言程序设计》复习题及答案.docx
- 文档编号:13916937
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:49
- 大小:42.54KB
《高级语言程序设计》复习题及答案.docx
《《高级语言程序设计》复习题及答案.docx》由会员分享,可在线阅读,更多相关《《高级语言程序设计》复习题及答案.docx(49页珍藏版)》请在冰点文库上搜索。
《高级语言程序设计》复习题及答案
一、选择题
1.以下叙述正确的是():
A) 在C程序中,main函数必须位于程序的最前面
B)C程序的每行只能写一条语句
C)C语言使用库函数实现输入输出操作
D)注释中的拼写错误会影响编译结果
2、以下说法中正确的是()
A) C语言程序总是从第一个的函数开始执行
B)C语言程序总是从main()函数开始执行
C)在C语言程序中,要调用的函数必须在main()函数中定义
D) C语言程序中的main()函数必须放在程序的开始部分
3、下列选项种说法正确的是( )
A)函数由声明部分和执行部分两部分组成
B)语言中main函数一定在程序的开始部分
C)C语言程序总是从第一个定义的函数开始执行
D)C程序的每行中只能写一条语句
4、设有说明:
int a;floatb;char c;doubled;则表达式1.3*a+2*b*c+d*(int)2.6 值的类型为()。
A)doubleB)char C) float D)int
5、 C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )
A)必须为字母
B)必须为下划线
C)必须为字母或下划线
D)可以是字母、数字和下划线中任一种字符
6、以下不正确的C语言标识符是()。
A)ABC B)abc C)a_bc D)void
7、下列运算符中优先级最高的是( )
A)
=
8、以下选项中属于C语言中合法关键字的是( )
A)Float B)abc C)int D)CASE
9、若x、i、j和k都是int型变量,计算下面表达式后,x的值为( )
x=(i=4,j=16,k=32)
A)4 B)16 C)32 D)52
10、在C语言中,要求数据必须是整型的运算符是( )
A)/B)+ + C)!
= D)%
11、若整型变量x的值为8,则下列表达式中值为1的表达式是
A)x+=x-=xB)x%=x-1 C)x%=x%=3 D) x/=x+x
12、若w=1,x=2,y=3,z=4,则条件表达式“w>x?
w:
y<z?
y:
z”的值是()
A)4 B)3 C)2 D)1
13、有以下程序,程序运行后的输出结果是。
main()
{ inti=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d%d%d\n",i,j,k);
}
A)123 B)234 C)223 D)2 33
14、下面程序的输出结果是
main()
{int x=2,y=-1,z=2;
if(x if(y<0)z=0; else z=-1+x; printf(“%d\n”z); } A)3B)2C)1D)0 15、执行下列语句后,a的值为( ) main( ) {inta=5; printf(“%d\n”,(a=3*5,a*4,a+5)); } A)65 B)20 C)15 D)10 16、下列程序段中,有错误的行是() 列定行号 intx=0,y=10; 2 switch(x) 3 {case3: 4 case–1: y=y-2;break; 5 casey+1: x+=5; 6 default: printf(“%d,%d”,x,y);} A)4 B)3 C)5 D)无错误 17、若i为整型变量,则以下循环执行次数是()。 #include"stdio.h" voidmain() { int i; for(i=2;i==0;) printf("%d",i--); } A) 无限次 B)0次 C)1次 D) 2次 18、若有以下定义,doublea[10];则a数组元素下标的上、下限分别为() A) 1,10 B)0,9 C)0,10 D)1,9 19、若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是() A) 调用可以作为独立的语句存在 B)调用可以作为一个函数的实参 C)调用可以出现在表达式中 D) 调用可以作为一个函数的形参 20、定义如下变量和数组: inti; intx[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句 for(i=0;i<3;i++)printf("%d",x[i][2-i]); 输出结果是( ) A)159B)1 47C)35 7 D)3 69 21、以下不能正确定义二维数组的选项是 A)inta[2][2]={{1},{2}}; B) inta[][2]={1,2,3,4}; C)inta[2][2]={{1},2,3}; D) int a[2][]={{1,2},{3,4}}; 22、若有以下定义: inta[5]={10,20,30,40,50},*p=a;则执行++(*p)后(*p)++的值是 A) 10 B) 11C)20 D)21 23、函数的嵌套调用是指 A) 直接调用本函数 B)在定义函数时,又定义另一个函数 C)间接调用本函数 D)被调用函数又调用另一个函数 24、下列说法正确的是 A)被调用函数必须先调用,后声明 B)用户自定义函数的类型若未指出,则系统默认为void C)全局变量不能与局部变量同名 D) 实参可以是任意表达式 25、以下描述正确的是() A)continue语句的作用,是结束整个循环语句的执行 B)只能在循环体内和switch语句体内使用break语句 C)在循环体内使用break语句或continue语句的作用相同 D)多层循环嵌套中不可以使用break语句 26、若有说明语句: “inta[3][4];”,则对数组元素的正确引用格式是( ) A)a[2][4] B)a[1,3]C)a[1+1][0] D)a (2)(1) 27、若有说明: “int a[3][4]={0};”,则下面正确的叙述是( ) A)只有元素a[0][0]可得到初值0 B)此数组说明语句不正确 C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0 28、定义数组a和b的语句是: “chara[]=“ABCDEF”;charb[]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};” 则以下叙述正确的是( ) A)a和b数组完全相同 B)a与b数组元素个数相同 C)a和b中都存放字符串 D)a数组比b数组元素个数多 29、语句“int(*ptr)();”的含义是( ) A)ptr是指向一维数组的指针变量 B)ptr是指向int型数据的指针变量 C)ptr是指向函数的指针,该函数返回一个int型数据 D)ptr是一个函数名,该函数返回值是指向int型数据的指针 30、若有定义: “int *p[4];”,则标识符p是( ) A)一个指向整型变量的指针 B)一个指针数组名 C)一个指针,它指向一个含有四个整型元素的一维数组 D)无效的数组名 31、在C语言中( ) A) 函数定义可以嵌套,但函数调用不可以嵌套 B)函数定义不可以嵌套,但函数调用可以嵌套 C)函数定义和调用都可以嵌套 D)函数定义和条用都不能嵌套 32、下面程序的输出结果是( ) #include<stdio.h> voidmain() {inti,j,x=0; for(i=0;i<=2;i++) {x++; for(j=0;j<=2;j++) {if(j%2)continue; x ++;} x++; } printf("%d\n",x); } A)4 B)6 C)8 D)12 33、执行下列语句后,m的值为( ) intm=1,x=2,y=3,z=4; m=m m: x; m=m m: y; m=m<z? m: z: A)1B)4C)2D)3 34、下列程序段是实现给数组所有元素赋值操作,应在下划线上填入的是() int a[10]; for(i=0;i<=9;i++)scanf(“%d”, ); A)a B)&a[i]C)a[i]D)&a[0] 35、下列叙述正确的是() A)do-while语句构成的循环不能用其它语句构成的循环来代替 B)do-while语句构成的循环只能用break语句退出 C)用do-while语句构成的循环,在while后的表达式为非零时结束循环 D)用do-while语句构成的循环,在while后的表达式为零时结束循环 36、下列程序的输出结果为() #include“stdio.h” main() {inta,b; for(a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) {b+=3;continue;} b+=5;} printf(“%d,%d”,a,b); } A) 8,20B)8,22C)7,20 D)7,22 37、设 int a[5]={10,15,20,25,30}; int*p;p=a+2;则表达式++*p的值为() A)20 B) 15 C)16 D)21 38、设w=1,x=2,y=3,z=4,a=5,b=6,则执行一下语句后A)b的值分别为( ) (a=w>x)&&(b=y>z); A)0和0 B) 5和0 C)0和6 D)5和6 39、下列语句的输出为( ) intx=-1; printf(“%d,%u,%o”,x,x,x); A)–1,-1,-1 B)–1,32767,-177777 C)–1,32768,177777 D) –1,65535,177777 40、下列函数调用语句中的实参个数为() fun((a+b,x,y),fun(x,(x+z))); A) 2B)3 C)4D)5 41、设有数组定义: char array[]=”china”;则数组array所占的内存空间为( ) A)4个字节 B)5个字节 C)6个字节D)7个字节 42、以下程序段的运行结果是()。 char c[5]={‘a’ ,’b’, ‘\0‘ ,‘c’ ,‘\0’}; printf(“%s” , c); A)’a’’b’ B)abC)abcD)a b 43、若C程序中出现死循则违背了算法的( ) A)有效性 B)确定性 C)有穷性 D)有一个或多个输出 44、设inta=20;则执行表达式: a/=a+a后,a的值是() A)0 B)1 C)20 D)40 45、intx,y,z,m=5,n=5;则执行下面语句后的z值是( ) x=(--m==n++)? --m: ++n; y=m++; z=n; A)5 B)10 C)6 D)7 46、执行下列程序段后,i的正确结果是( ) inti=10; switch(i) {case9: i+=1; case 10: i++; case11: ++i; default: i+=i;} printf("%d", i ); A)10 B)11 C)12 D)24 47、若有定义: int a[10];。 则以下表达式中不能代表数组元素a[1]的地址的是( ) A)&a[0]++ B)&a[1] C)&a[0]+1 D)a+1 48、变量的指针,其含义是指该变量的( ) A)值 B)地址C)变量名 D)一个标志 49、有以下函数定义: voidfun(intn, doublex) {…… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是() A)fun(int y,double m);B)k=fun(10,12.5); C)fun(x,n); D)void fun(n,x); 50、设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。 A)0B)1 C)2 D)3 51、若inta,b;scanf("%d%d", &a,&b);不可以用( )作为输入的分隔符。 A),B)空格 C)回车D)TAB键 52、下面关于运算符优先顺序的描述中正确的是: () A)关系运算符<算术运算符<赋值运算符<逻辑与运算符 B)逻辑运算符<关系运算符< 算术运算符<赋值运算符 C)赋值运算符<逻辑与运算符<关系运算符< 算术运算符 D)算术运算符< 关系运算符<赋值运算符<逻辑与运算符 53、为了判断两个字符串s1和s2是否相等,应当使用()。 A)if(s1 ==s2) B)if(s1 =s2) C)if(strcpy(s1,s2)) D)if(strcmp(s1,s2)==0) 54、以下对二维数组进行正确初始化的是( )。 A)inta[2][3]={{1,2},{3,4},{5,6}}; B)int a[][3]={1,2,3,4,5,6}; C)inta[2][]={1,2,3,4,5,6}; D)inta[2][]={{1,2},{3,4}}; 55、 若用数组名作为函数调用时的实参,则实际上传递给形参的是()。 A)数组的首地址B)数组的第一个元素值 C)数组中全部元素的值ﻩD)数组元素的个数 56、 以下错误的描述是()。 ﻩﻩ A)不同的函数中可以使用相同的变量名 B)形式参数是局部变量 C)一个函数内部定义的变量只能在本函数范围内有效 D) 在一个函数内部的复合语句中定义的变量可以在本函数范围内有效 57、下列程序的运行结果是( ) main( ) { int i=10; int *p=&i; i=8; printf(“%d”,*p); } A)10 B)8 C)程序错误,不能运行 D)结果不确定 58、C语言中,double类型的数据占字节数为( ) A)1 B)2 C)4 D)8 59、可在C程序中用作用户标识符的一组标识符是( ) A)as_b3 _123 If B) For -abc case C)2c DO SIG D)void define WORD 60、以下字符中,不正确的C语言转义字符是() A)‘\\’B)‘\018’C) ‘\Xaa’D)‘\t’ 61、C语言中,数据在内存中都以( )形式存放 A)原码 B)反码 C)ASCll码 D)补码 62、下列运算符中,优先级最高的是( ) A)&&B)! C) ++ D) || 63、有输入语句: scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a 的值为11,b为12,c为13,则从键盘输入数据的正确形式应当是( )。 A)111213 B)11,12,13 C)a=11 b=12c=13 D)a=11,b=12,c=13 64、为表示关系-1≤x≤1应使用的c语言表达式是( ) A)-1≤x≤1 B)-1= C) -1=<x=<1 D)x>=-1&&x<=1 65、若有以下定义: doublea;int b; float c;chard; 则表达式a*b/d+(d-c)值的类型为( ) A)floatB) int C)char D)double 66、下列程序输出的结果是( ) main() {inta=18; a+=a-=a*a; printf("%d",a); } A)-612 B)9 C) 0 D) 36 67、break语句( ) A) 只能出现在if语句中B)只能出现在循环体中 C)可用在循环体和switch语句中D)可用在函数中的任何语句 68、如int k=11;则执行语句k=1/3*++k;后k取值为( ) A) 12B)3C) 4D) 0 69、以下程序的输出结果是() main() { intx=12,y=012; printf("%d%d\n",x--,--y); } A)12 9 B)11 11C)11 12 D)12 11 70、 设intx=1,y=5;表达式(! x||y--||++x)的值是( ) A)0 B)1 C)5 D)4 71、如果k为整数,则while循环执行次数() k=10; while(0) k=k-1; A)一次都不执行 B)1 C)10 D)无限次 72、有以下程序() fun(inta,intb) { if(a>b)returnb; else returnb; } main() {int x=3,y=8,z=6,r; r=fun(x, y+z); printf("%d\n",r); 程序运行后的输出结果是( ) A)3B) 6 C)8 D)14 73、若有说明: intn=17,*p=&n,*q=p;,则以下非法的赋值语句是() A)p=q; B)*p=*q; C)n=*q; D)p=n; 74、以下程序的功能是: 按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main() { intn,k; floatscore,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) {scanf(“%f”,&score);sum+=score;} ave=sum/4.0; printf(“NO%d: %f\n”,n,ave); } } 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。 这条语句是( ) A) sum=0.0; B) sum+=score; C)ave=sun/4.0; D)printf(“NO%d: %f\n”,n,ave); 75、数组定义为chara[10]={‘a’,‘b’,‘c’};该数组包括的元素个数是( ) A)3 B) 9 C)4 D)10 76、下面程序的输出结果是( ) main ( ) { int x=2,y =-1,z=2; if(x< y) if( y<0 )z =0; else z=-1+x++; printf("%d\n",z++ );} A) 3 B) 2 C) 1 D)0 77、有以下程序 main() { int a[]={0,1,2,3,4,5,6,7,8,9}, *p; for(p=&a[9];p>=a;p--) printf("%d,",*p); } 程序运行后的输出结果是() A)0 12 34 5 678 9 B)2,3,4,5,6,7,8,9,10,1 C)0,1,2,3,4,5,6,7,8,9, D)9,8,7,6,5,4,3,2,1,0, 78、执行循环语句: for(x=y=0;y! =250||x<4;x++)y+=50; 其循环体执行的次数为( ) A)5 B)4 C)3 D)2 79、如intx=14;下列求商y(需小数结果)的表达式哪一个不对( ) A)y=x/(5+.0) B)y=x/5.C)y=1.*x/5D) y=x/5*1.0 80、设有以下程序段() int x=0,s=0; while(! x! =0)s+=++x; printf("%d",s); 则: A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法 D)程序无法运行 81、有以下程序,程序运行后的输出结果是() #include"stdio.h" voidmain() {inti=0,j=2,m=3,n; n=i++<=1&&j>=2&&m++; printf("%d,%d,%d,%d\n",i,j,m,n); } A)2,2,4,1 B)2,2,3,1C)1,2,4,1 D)2,1,3,1 82、下面程序的输出结果是() #include void main() {int i,x=1,y=0,a=0,b=0; switch(x) ﻩ {case 1: b++; case2: a++;b++;break; case 3: a++;b++; } printf("%d,%d\n",a,b); } A)2,1 B)2,2 C)1,2D)4,2 二、程序分析及填空 1.C语言的基本数据类型中,有两种实数类型变量,一种是float型,另一种是()型。 2.若程序中有语句“scanf(“a=%d,b=%d”,&a,&b);”,在执行程序时,要输入3和5两个数,应该键入( )。 3.包含数学类库函数的头文件名称是( )。 4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级语言程序设计 高级 语言程序设计 复习题 答案