20春学期《高级语言程序设计基础X》在线平时作业2
试卷总分:100 得分:100
一、单选题 (共 25 道试题,共 100 分)
1.设x,y是float型变量,则不正确的赋值语句是( )。
A.y=int(5);
B.x*=y+1;
C.x=y=0;
D.++x;
2.若执行下述程序时从键盘输入3 4,则输出结果是( )。
#include main( ) { int a,b,s;
scanf(“%d%d”,&a,&b);
s=a; if (a<b) printf(“%d\n”,s*s); s=b; }
A.400
B.324
C.256
D.186
3.已知ch是字符型变量,则不正确的赋值语句是( )。
A.ch=’a+b’;
B.ch=’7’+’9′;
C.ch=5+9;
D.ch=’\0′;
4.以下有关宏替换的叙述不正确的是( )。
A.宏替换只是字符替换
B.宏替换不占用运行时间
C.宏名必须用大写字母表示
D.宏名不具有类型
5.若有以下语句,则对x数组元素引用不正确的是( )。 int x[ ]={1, 2, 3, 4, 5, 6}, *ptr;ptr=x;
A.*(ptr–)
B.*(ptr++)
C.*(–ptr)
D.*(++ptr)
6.下面程序( )。(每行程序前的数字为行号) 1 main{} 2 { 3 float a[10]={0.0}; 4 int i; 5 for(i=0;i<3;i++) scanf(%d”,&a[i]); 6 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 7 printf(“%f\n”,a[0]); 8 }
A.第7行有错误
B.第5行有错误
C.第3行有错误
D.没有错误
7.以下程序段的执行结果是( )。 int x=-3; do { printf(“%d\n”, x++); }while(!x);
A.陷入死循环
B.-3
C.-2
D.-1
8.C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是( )。
A.由用户指定传递方式
B.由实参传给形参,再由形参传回实参
C.地址传递
D.单向值传递
9.判断字符串a和b是否相等,应当使用( )。
A.if(strcpy(a,b))
B.if(strcmp(a,b))”
C.if(a=b)
D.if(a==b)
10.以下对指针变量的操作中,不正确的是( )。
A.int *p, *q; q=p=NULL;
B.int p, *q; q=&p;
C.int a=5, *p; *p=a;
D.int a=5, *p=&a, *q=&a; *p=*q;”
11.下面程序段的运行结果是( )。 char a[7]=”abcdef”; char b[4]=”ABC”; strcpy(a,b); printf(“%c”,a[5]);
A.空格
B.f
C.e
D.\0
12.C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是( )。
A.long
B.int
C.float
D.double
13.有下面的程序段 char a[3],b[]=”China”; a=b; printf(“%s”,a); 则( )。
A.运行后将输出China
B.运行后将输出Chi
C.运行后将输出Ch
D.编译时出错
14.若有说明:int a[3][4];则数组a中各元素( )。
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.可在程序的编译或运行阶段得到初值0
D.不能得到确定的初值
15.设c1、c2均是char类型变量,则以下不正确的函数调用是( )。
A.scanf(“c1=%cc2=%c”,&c1,&c2);
B.putchar(c2);
C.putchar(c1,c2)”
D.getchar( )
16.下面对typedef的叙述中不正确的是( )。
A.用typedef可以定义新的数据类型
B.用typedef只是将已存在的类型用一个新的标识符来代表
C.用typedef不能定义变量名
D.使用typedef有利于程序的通用和移植
17.定义如下变量和数组:int k; int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )。for(k=0;k<3;k++) printf(“%d”,a[k][2-k]);
A.3 6 9
B.3 5 7
C.1 5 9
D.1 4 7
18.若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A.选项内容11
B.选项内容11
C.选项内容11
D.数组元素x[6]的地址
E.数组元素x[6]的值
F.数组元素x[5]的地址
G.数组元素x[5]的值
19.若执行fopen函数时发生错误,则函数的返回值是( )。
A.随机值
B.NULL
C.EOF
D.1
20.执行以下程序段后,y的值是( )。 int a[ ]={1, 3, 5, 7, 9} int x=0, y=1, *ptr; ptr=&a[1]; while (!x) { y+=*(ptr+x); x++; }
A.4
B.24
C.2
D.1
21.若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A.选项内容11
B.选项内容11
C.数组元素x[6]的地址
D.数组元素x[6]的值
E.数组元素x[5]的地址
F.数组元素x[5]的值
22.系统的标准输入文件是指( )。
A.键盘
B.软盘
C.硬盘
D.显示器
23.以下能对一维数组a进行正确初始化的语句是( )。
A.int a[10]=(10*1);
B.int a[10]=(0,0,0,0,0);
C.int a[10]={ };
D.int a[]={0};
24.C语言中字符型(char)数据在内存中的存储形式是( )。
A.补码
B.反码
C.原码
D.ASCII码
25.若a为int类型变量,则执行以下程序段后a的值为( )。 a=5;a*=a/=a++;
A.40
B.3
C.2
D.1