《高级语言程序设计》复习题及答案.pdf
《《高级语言程序设计》复习题及答案.pdf》由会员分享,可在线阅读,更多相关《《高级语言程序设计》复习题及答案.pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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 语言程序总是从第一个定义的函数开始
2、执行D)C 程序的每行中只能写一条语句4、设有说明:int a;float b;char c;double d;则表达式 1.3*a+2*b*c+d*(int)2.6 值的类型为()。A)double B)char C)float D)int5、C 语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字和下划线中任一种字符6、以下不正确的 C 语言标识符是()。A)ABC B)abc C)a_bc D)void7、下列运算符中优先级最高的是()A)x?w:y z?y:z”的值是()A)4 B)3 C)2 D)1
3、13、有以下程序,程序运行后的输出结果是。main()int i=1,j=2,k=3;if(i+=1&(+j=3|k+=3)printf(%d%d%dn,i,j,k);A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 314、下面程序的输出结果是main()int x=2,y=-1,z=2;if(xy)if(y0)z=0;else z=-1+x;printf(“%dn”z);A)3 B)2 C)1 D)015、执行下列语句后,a 的值为()main()int a=5;printf(“%dn”,(a=3*5,a*4,a+5);A)65 B)20 C)15 D)1016、下列程序段中,有
4、错误的行是()列定行号 int x=0,y=10;2 switch(x)3 case 3:4 case 1:y=y-2;break;5 case y+1:x+=5;6 default:printf(“%d,%d”,x,y);A)4 B)3 C)5 D)无错误17、若 i 为整型变量,则以下循环执行次数是()。#includestdio.hvoid main()int i;for(i=2;i=0;)printf(%d,i-);A)无限次 B)0 次 C)1 次 D)2 次18、若有以下定义,doublea10;则 a 数组元素下标的上、下限分别为()A)1,10 B)0,9 C)0,10 D)1
5、,919、若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是()A)调用可以作为独立的语句存在 B)调用可以作为一个函数的实参C)调用可以出现在表达式中 D)调用可以作为一个函数的形参20、定义如下变量和数组:int i;int x33=1,2,3,4,5,6,7,8,9;则下面语句for(i=0;i3;i+)printf(%d,xi2-i);输出结果是()A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 921、以下不能正确定义二维数组的选项是A)int a22=1,2;B)int a2=1,2,3,4;C)int a22=1,2,3;D)int a2=1,2,3,4;22
6、、若有以下定义:int a5=10,20,30,40,50,*p=a;则执行+(*p)后(*p)+的值是A)10 B)11 C)20 D)2123、函数的嵌套调用是指A)直接调用本函数B)在定义函数时,又定义另一个函数C)间接调用本函数D)被调用函数又调用另一个函数24、下列说法正确的是A)被调用函数必须先调用,后声明B)用户自定义函数的类型若未指出,则系统默认为 voidC)全局变量不能与局部变量同名D)实参可以是任意表达式25、以下描述正确的是()A)continue 语句的作用,是结束整个循环语句的执行B)只能在循环体内和 switch 语句体内使用 break 语句C)在循环体内使用
7、break 语句或 continue 语句的作用相同D)多层循环嵌套中不可以使用 break 语句26、若有说明语句:“int a34;”,则对数组元素的正确引用格式是(A)a24 B)a1,3 C)a1+10 D)a(2)(1)27、若有说明:“int a34=0;”,则下面正确的叙述是()A)只有元素 a00可得到初值 0B)此数组说明语句不正确C)数组 a 中各元素都可得到初值,但其值不一定为 0D)数组 a 中每个元素均可得到初值 028、定义数组 a 和 b 的语句是:“char a=“ABCDEF”;char b=A,B,C,D,E,则以下叙述正确的是()A)a 和 b 数组完全相
8、同 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 *p4;”,则标识符 p 是()A)一个指向整型变量的指针B)一个指针数组名C)一个指针,它指向一个含有四个整型元素的一维数组D)无效的数组名31、在 C 语言中()A)函数定义可以嵌套,但函数调用不可以嵌套)F;”
9、B)函数定义不可以嵌套,但函数调用可以嵌套C)函数定义和调用都可以嵌套D)函数定义和条用都不能嵌套32、下面程序的输出结果是()#include void main()int i,j,x=0;for(i=0;i=2;i+)x+;for(j=0;j=2;j+)if(j%2)continue;x+;x+;printf(%dn,x);A)4 B)6 C)8 D)1233、执行下列语句后,m 的值为()int m=1,x=2,y=3,z=4;m=mx?m:x;m=my?m:y;m=mz?m:z:A)1 B)4 C)2 D)334、下列程序段是实现给数组所有元素赋值操作,应在下划线上填入的是()int
10、a10;for(i=0;i=9;i+)scanf(“%d”,);A)a B)&ai C)ai D)&a035、下列叙述正确的是()A)do-while 语句构成的循环不能用其它语句构成的循环来代替B)do-while 语句构成的循环只能用 break 语句退出C)用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环D)用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环36、下列程序的输出结果为()#include“stdio.h”main()int a,b;for(a=1,b=1;a=20)break;if(b%3=1)b+=3;cont
11、inue;b+=5;printf(“%d,%d”,a,b);A)8,20 B)8,22 C)7,20 D)7,2237、设 int a5=10,15,20,25,30;int*p;p=a+2;则表达式+*p 的值为()A)20 B)15 C)16 D)2138、设 w=1,x=2,y=3,z=4,a=5,b=6,则执行一下语句后 A)b 的值分别为()(a=wx)&(b=yz);A)0 和 0 B)5 和 0 C)0 和 6 D)5 和 639、下列语句的输出为()int x=-1;printf(“%d,%u,%o”,x,x,x);A)1,-1,-1 B)1,32767,-177777C)1,
12、32768,177777 D)1,65535,17777740、下列函数调用语句中的实参个数为()fun(a+b,x,y),fun(x,(x+z);A)2 B)3 C)4 D)541、设有数组定义:char array=”china”;则数组 array 所占的内存空间为(A)4 个字节 B)5 个字节 C)6 个字节 D)7 个字节42、以下程序段的运行结果是()。char c5=a,b,0,c,0 ;printf(“%s”,c);A)ab B)ab C)ab c D)a b43、若 C 程序中出现死循则违背了算法的()A)有效性 B)确定性C)有穷性 D)有一个或多个输出44、设 int
13、a=20;则执行表达式:a/=a+a 后,a 的值是()A)0 B)1 C)20 D)4045、int x,y,z,m=5,n=5;则执行下面语句后的 z 值是()x=(-m=n+)?-m:+n;y=m+;z=n;A)5 B)10 C)6 D)746、执行下列程序段后,i 的正确结果是()int i=10;switch(i))case 9:i+=1;case 10:i+;case 11:+i;default:i+=i;printf(%d,i);A)10 B)11 C)12 D)2447、若有定义:int a10;。则以下表达式中不能代表数组元素 a1的地址的是()A)&a0+B)&a1 C)&
14、a0+1 D)a+148、变量的指针,其含义是指该变量的()A)值 B)地址 C)变量名 D)一个标志49、有以下函数定义:void fun(int n,double x)若以下选项中的变量都已正确定义并赋值,则对函数 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)0 B)1 C)2 D)351、若 int a,b;scanf(%d%d,&a,&b);不可以用()作为输入的分隔符。A),B)空格
15、 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)int a23=1,2,3,4,5,6;B)int a3=1,2,3,4,5,6
16、;C)int a2=1,2,3,4,5,6;D)int a2=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
17、、C 语言中,double 类型的数据占字节数为()A)1 B)2 C)4 D)859、可在 C 程序中用作用户标识符的一组标识符是()A)as_b3 _123 IfB)For -abc caseC)2c DO SIGD)void define WORD60、以下字符中,不正确的 C 语言转义字符是()A)B)018 C)Xaa D)t61、C 语言中,数据在内存中都以()形式存放A)原码 B)反码 C)ASCll 码 D)补码62、下列运算符中,优先级最高的是()A)&B)!C)+D)|63、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量 a 的值为
18、11,b 为12,c 为 13,则从键盘输入数据的正确形式应当是()。A)11 12 13 B)11,12,13C)a=11 b=12 c=13 D)a=11,b=12,c=1364、为表示关系-1x1 应使用的 c 语言表达式是()A)-1x1 B)-1=x&x=1 C)-1=x=-1&xb)return b;else return b;main()int x=3,y=8,z=6,r;r=fun(x,y+z);printf(%dn,r);程序运行后的输出结果是()A)3 B)6 C)8 D)1473、若有说明:int n=17,*p=&n,*q=p;,则以下非法的赋值语句是()A)p=q;B
19、)*p=*q;C)n=*q;D)p=n;74、以下程序的功能是:按顺序读入 10 名学生 4 门课程的成绩,计算出每位学生的平均分并输出,程序如下:main()int n,k;float score,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:%fn”,n,ave);上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是()A)sum=0.0;B)sum+=score;C)ave=sun/4.0;D)prin
20、tf(“NO%d:%fn”,n,ave);75、数组定义为 char a10=a,b,c;该数组包括的元素个数是()A)3 B)9 C)4 D)1076、下面程序的输出结果是()main()int x=2,y=-1,z=2;if(x y)if(y=a;p-)printf(%d,*p);程序运行后的输出结果是()A)0 1 2 3 4 5 6 7 8 9B)2,3,4,5,6,7,8,9,10,1C)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|x4;x+)y+=50;其循环体执行的次数为()A)5A)y
21、=x/(5+.0)int x=0,s=0;while(!x!=0)s+=+x;printf(%d,s);则:A)运行程序段后输出 0 B)运行程序段后输出 1C)程序段中的控制表达式是非法 D)程序无法运行81、有以下程序,程序运行后的输出结果是()#includestdio.hvoid main()int i=0,j=2,m=3,n;n=i+=2&m+;printf(%d,%d,%d,%d n,i,j,m,n);A)2,2,4,1 B)2,2,3,1 C)1,2,4,1 D)2,1,3,182、下面程序的输出结果是()B)4 B)y=x/5.C)3 C)y=1.*x/5 D)2 D)y=x/
22、5*1.079、如 int x=14;下列求商 y(需小数结果)的表达式哪一个不对()80、设有以下程序段()#include void main()int i,x=1,y=0,a=0,b=0;switch(x)case 1:b+;case 2:a+;b+;break;case 3:a+;b+;printf(%d,%dn,a,b);A)2,1 B)2,2 C)1,2 D)4,2二、程序分析及填空1.C 语言的基本数据类型中,有两种实数类型变量,一种是 float 型,另一种是()型。2.若程序中有语句“scanf(“a=%d,b=%d”,&a,&b);”,在执行程序时,要输入 3 和 5 两个
23、数,应该键入()。3.包含数学类库函数的头文件名称是()。4.字符串“ab034x79”的长度为()。5数组元素作函数参数进行的是传递,数组名作函数参数进行的是_传递。6设有函数调用语句f(x1,x1x2,f1(x1,x2);则函数f()实参的数目有_个。7在数组int score10=1,2,3,4,5,6中,元素定义的个数有个,其中 score8的值为。8.C 语言源程序文件的后缀是经过编译后,生成文件的后缀是,经过连接后,生成文件的后缀是。结构化程序由、三种基本结构组成。9、C 语言提供的三中逻辑运算符是_、_、_。10、若 a=1,b=4,c=3,则表达式!(ab)|!c&1 的值是_
24、。11、在 C 语言中,若对函数类型未加说明,则函数的隐含类型为类型。12、在 C 语言中,唯一的一个三目运算符是。13、以下程序运行后的输出结果是_。#include void main()int m=5;if(m+5)printf(%dn,m);else printf(%dn,m-);14、以下程序运行后的输出结果是。#include void main()int x=15;while(x10&x50)x+;if(x/3)x+;break;else continue;printf(%dn,x);15、下面程序的运行结果是:。#include stdio.h void swap(int*a,
25、int*b)int *t;t=a;a=b;b=t;void main()int x=3,y=5,*p=&x,*q=&y;swap(p,q);printf(%d%dn,*p,*q);16、在执行以下程序时,如果从键盘上输入:AdEf,则输出为 _#includestdio.hvoid main()char ch;while(ch=getchar()!=n)if(ch=A&ch=a&ch=z)ch=ch-32;printf(%c,ch);printf(n);17 设有以下宏定义,则执行赋值语句 a=PP*20;(a 为 int 型变量)后,a 的值是。#define PR 100#define P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级语言程序设计 高级 语言程序设计 复习题 答案
限制150内