20春学期《高级语言程序设计基础X》在线平时作业1
试卷总分:100 得分:100
一、单选题 (共 25 道试题,共 100 分)
1.有两个字符数组a、b,则以下正确的输入语句是( )。
A.scanf(“%s%s”,a,b);
B.scanf(“%s%s”,&a,&b);
C.gets(a,b);
D.gets(“a”); gets(“b”);”
2.以下对指针变量的操作中,不正确的是( )。
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;”
3.若有以下程序段: for (m=1; m<=100; m++) { scanf(“%d”, &y); if (y<0) continue; printf(“%3d”, m); }正确的描述是( )。
A.最多允许输出100个非负整数
B.当y<0时整个循环结束
C.y>=0时什么也不输出
D.printf函数永远也不执行
4.C语言程序从main()函数开始执行,所以这个函数要写在( )。
A.程序文件的最后
B.程序文件的开始
C.程序文件的任何位置
D.它所调用的函数的前面
5.如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( )。
A.该变量在该函数中有效
B.该变量在本程序范围内有效
C.该变量只在该复合语句中有效
D.该变量为非法变量
6.以下正确的函数说明是( )。
A.int fun(int a, b)
B.int fun(char a[ ][ ])
C.float fun(int a; int b)
D.double fun( )
7.以下正确的函数形式是( )。
A.fun1(x, y) { int x, y; double z;z=x+y;return z; }
B.fun1(int x, y){ int z;return z; }
C.double fun1(int x, int y) { z=x+y; return z; }
D.double fun1(int x, int y){ double z;z=x+y; return z; }”
8.若有以下说明,并且0≤i<10,则( )是对数组元素的错误引用。int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a, I;
A.p+i
B.a[p-a+i]
C.*(a+i)
D.*(&a[i])
9.以下能对二维数组a进行正确初始化的语句是( )。
A.int a[][3]={{1,2,3},{4,5,6}};
B.int a[][3]={{1,0,1},{},{1,1}};”
C.int a[2][4]={{1,2,3},{4,5},{6}};
D.int a[2][]={{1,0,1},{5,2,3}};
10.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。
A.num%2==1
B.num%2
C.!(num%2==0)
D.!(num%2)
11.下面程序的输出结果是( )。main(){ int x,i;for(i=1;i<=100;i++){ x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf(“%d “,x);}}
A.42 84
B.39 81
C.28 70
D.26 68
12.若有以下语句,则对x数组元素引用不正确的是( )。 int x[ ]={1, 2, 3, 4, 5, 6}, *ptr;ptr=x;
A.*(ptr–)
B.*(ptr++)
C.*(–ptr)
D.*(++ptr)
13.语句while (!y)中的表达式 !y 等价于( )。
A.y==1
B.y==0
C.y!=1
D.y!=0
14.已知学生记录描述如下,下面对结构体成员”computer”的赋值方式正确的是( )。 struct student { int num; char name[8]; struct { float math; float engl; float computer; } mark;} std;
A.student.computer=84;
B.std.mark.computer=84;
C.std.computer=84;
D.mark.computer=84;
15.下程序( )。 main( ) { int x1=3, x2=0, x3=0; if (x1=x2+x3) printf(“* * * *”); else printf(“# # # #”); }
A.输出:* * * *
B.输出:# # #
C.无输出结果
D.#存在语法错误
16.若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A.选项内容11
B.选项内容11
C.数组元素x[6]的地址
D.数组元素x[6]的值
E.数组元素x[5]的地址
F.数组元素x[5]的值
17.设a、b、c、d均是int类型变量,为了使以下程序段的输出为:1234+123+12+1,正确的输入形式应当是( )。 scanf(“%4d+%3d+%2d+%1d”,&a,&b,&c,&d);printf(“%4d+%3d+%2d+%1d”,a, b, c, d);
A.1234123412341234
B.1234123121
C.1234+1234+1234+1234
D.1234+123+12+1
18.函数调用语句:fseek(fp, 10L, 2);的含义是:将文件位置指针( )。
A.移动到距离文件头10个字节处
B.移到离当前位置10个字节处
C.从文件尾部前移10个字节
D.从当前位置向后移动10个字节
19.当正常执行了文件关闭操作时,fclose函数的返回值是( )。
A.随机值
B.1
C.0
D.-1
20.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是( )。if(x>y)z=x;x=y;y=z;
A.x=20,y=30,z=30
B.x=20,y=30,z=20″
C.x=20,y=30,z=10
D.x=10,y=20,z=30
21.若有定义: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]的值
22.若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是( )。
A.*&p, *p, &a”
B.&a, p, &*p
C.a, p, &*a
D.*&a, &a, *p
23.以下正确的描述是( )。
A.函数的定义和函数的调用均可以嵌套
B.函数的定义和函数的调用均不可以嵌套
C.函数的定义可以嵌套,但函数的调用不可以嵌套
D.函数的定义不可以嵌套,但函数的调用可以嵌套
24.若有说明:int a[10];则对数组元素的正确引用是( )。
A.a(5)
B.a[3,5]
C.a[10-10]
D.a[10]
25.C语言结构体类型变量在程序执行期间( )。
A.部分成员驻留在内存中
B.没有成员驻留在内存中
C.所有成员一直驻留在内存中
D.只有一个成员驻留在内存中