1、黄石理工学院 《高级语言程序设计》 试卷 1、不能作为C语言标识符的是( B ) A、__char B、#M C、abc D、A_B_C 2、下面哪个表达式的值为4 ( D ) A. 11/3 B. 11.0/3 C. (float)11/3 D. (int)(11.0/3+0.5) 3、判断char型 变量c1是否为大写字母的正确表达式( C ) A、 ’A’<=c1<=’Z’ B、 (c1>=’A’)&(c1<=’Z’) C、 (c1>=’
2、A’)&&(c1<=’Z’) D、 (‘a<=c1’)AND(‘Z’>=c1) 4、源程序要正确地运行,必须要有什么函数?( C ) A. printf函数 B. 自定义的函数 C. main函数 D. 不需要函数 5、在C语言中逻辑“真”等价于以下( D ) A、整数1 B、大于0的数 C、小于0的数 D、不等于0的数 6、若a为整型变量,且有以下语句 ( D ) a=-017L; printf("%d\n",a); 则下面哪个说法是正确的? A. 赋值不合法 B. 输出值为-17 C. 输出为不确定值
3、 D. 输出值为-15 7、以下程序的运行结果是( D ) main() {int x=1,y=2,z=3; z+=x>y?++x:++y; printf(“%d”,z); } A、1 B、2 C、3 D、6 8、如果对以下程序进行编译和运行,其结果为( D ) main() {int x,y; x=555;y=x+2; y=x+2; printf(“x=%d”,x,y);} A、 程序不能通过编译,出现错误提示信息 B、 程序能通过编译,不出现错误提示信息 C、 程序能通过编译,但不能运行 D、 显示 x=555 9、在C语言的if语句
4、中,用作判断的表达式为 ( A ) A. 关系表达式 B. 逻辑表达式 C. 算术表达式 D. 任意表达式 10、请问:下面这个程序段的输出是什么?( A ) int a,b,c; a=7;b=8;c=9; if(a>b) a=b,b=c;c=a; printf("a=%d b=%d c=%d\n",a,b,c); A. a=7 b=8 c=7 B. a=7 b=9 c=7 C. a=8 b=9 c=7 D. a=8 b=9 c=8 11、若有以下说明和语句,且0<=
5、i<10, 则下面哪个是对数组元素的错误引用? ( C )
int a[]={1,2,3,4,5,6,7,8,9,0}, *p, i;
p=a;
A. *(a+i) B. a[p-a] C. p+i D. *(&a[i])
12、下列程序执行后输出的结果为( D )
#include
6、 main() { int a[5]={2,4,5,6,10},*p,**k; p=a; k=&p; printf(“%d”,*(P++)); printf(“%d\n”,**k); } A、4 4 B、2 2 C、2 4 D、4 6 14、. 该源程序执行后,屏幕上显示什么?( C ) void main() { int a; float b; a=4; b=9.5; printf("a=%d,b=%4.2f\n",a,b); } A. a=%d,b=%f\n B.
7、a=%d,b=%f C. a=4,b=9.50 D. a=4,b=9.
15、以下程序的输出结果为( C )
#include
8、num1=num2;num2=temp;} a=num1; b=num2; while(b!=0) {temp=a%b; a=b;b=temp;} printf(“%d,%d”,a,num1*num2/a); } A、4,24 B、3,24 C、5,25 D、4,25 17、若有以下说明和语句,则输出结果是 ( C ) char str[]="\"c:\\abc.dat\""; printf("%s",str); A. 字符串中有非法字符 B. \"c:\\abc.dat\" C. "c:\abc.dat" D. "c:\\abc
9、dat" 18、若k为整型,以下while循环执行( B )次. k=2; while(k=0) printf("%d",k),k--; printf("\n"); A. 无限次 B. 0次 C. 1次 D. 2次 19、若要定义b为5*10的二维数组,正确的定义语句为( D ) A、float b(5,10) B、float b[5,10] C、float [5][10] D、float b[5][10] 20在下列语句中,不正确的是( D ) A、 c=2*max(a,b)
10、 B、m=max(a,max(b,c)) C、printf(“%d”,max(a,b)) D、int max(int x,int max(int y,int z)) 1、 若已知a=10,b=15,c=1。则表达式a*b&&c的运算结果为___1____。 2、 有以下函数调用语句,请问函数fun1有几个参数____4__________。 fun1(x,(y,z),10,fun2((x-1,y-1))) 3、C语言的基本数据类型分为___int___、___float______、___char_________。 4、程序的三种基本结构
11、为_____顺序______、_____循环______、_______选择____。
5、有以下语句:int a,b;scanf(“a=%d ,b=%d”,&a,&b);为使变量a,b的值分别为12 ,34
则输入数据的形式为________a=12,b=34______________________________。
6、若程序片段为i=1;if(i<=0)printf(“####”) else printf(“****”);则输出为_________________。
7、#include
12、6789”,*p; p=&a[4]; puts(p); } 以上程序的输出结果为___56789_______。 8、下面程序的运行结果是__6__________。 main() { struct cmplx {int x; int y;}cnum[2]={1,3,2,7}; printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x); } 9、C语言的数组名是一个________常量,不能对其进行自增(减)运算。 1、这个程序输入了20个数存放在一个数组中,并且输出其中最大者与最小者、,20个数的和及它
13、们的平均值。请填空。 void main() { char array[20]___; int max,min,average,sum=0; int i; for(i=0;i<_20__;i++) { printf("请输入第%d个数:",i+1); scanf("%d",_&array[i]__); } max=array[0]; min=array[0]; for(i=0;i<
14、20__;i++)
{ if(max
15、",sum);
printf("平均值是%d.\n",average);
}
}
1、 写出运行结果
#include
16、 3、写出运行结果 void main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) {case 0:a++; break; case 1: b++; break; } case 2: a++;b++; break; case 3: a++;b++; } printf(“\na=%d,b=%d”,a,b); } a=2,b=1 第 3 页 共 3 页






