20春学期《高级语言程序设计基础X》在线平时作业3
试卷总分:100 得分:100
一、单选题 (共 25 道试题,共 100 分)
1.以下能正确定义整型变量x、y和z并为其赋初值5的语句是( )。
A.x=5,y=5,z=5;”
B.int x=y=z=5;
C.int x=5,y=5,z=5;
D.int x,y,z=5;
2.若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A.选项内容11
B.选项内容11
C.数组元素x[6]的地址
D.数组元素x[6]的值
E.数组元素x[5]的地址
F.数组元素x[5]的值
3.以下为一维整型数组a的正确说明是( )。
A.int n; scanf(“%d”,&n); int a[n];
B.int n=10,a[n];
C.int a(10);
D.#define SIZE 10;int a[SIZE];
4.执行下面程序段后,x的值是( )。 int x;printf(“%d\n”,(x=3*5,x+5));
A.5
B.20
C.15
D.10
5.若有以下程序段: …… int a[]={4,0,2,3,1},i,j,t; for(i=1;i=0 && t>a[j]) { a[j+1]=a[j];j–;} a[j+1]=t; } …… 则该程序段的功能是( )。
A.对数组a进行选择排序(降序)
B.对数组a进行选择排序(升序)
C.对数组a进行插入排序(降序)
D.对数组a进行插入排序(升序)
6.下面程序的输出结果是( )。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
7.下面程序的运行结果是( )。 main() { struct cmplx { int x; int y; } cm[2]={1,2,3,4}; printf(“%d\n”, 2*cm[0].x+ cm[1].y/cm[0].y);}
A.5
B.4
C.3
D.2
8.以下程序的输出结果是( )。 main() { int a=0,b=1,c=0,d=20; if(a) d=d-10; else if(!b) if(!c) d=15; else d=25; printf(“d=%d\n”,d);}
A.d=25
B.d=20
C.d=15
D.d=10
9.若有以下语句,则对x数组元素引用不正确的是( )。 int x[ ]={1, 2, 3, 4, 5, 6}, *ptr;ptr=x;
A.*(ptr–)
B.*(ptr++)
C.*(–ptr)
D.*(++ptr)
10.以下程序执行后a的值为( )。 main( ) { int a,m=2, k=1, *p=&k; a=p!=&m; printf(“%d\n”,a); }
A.2
B.1
C.0
D.-1
11.若用fopen打开一个新的二进制文件,要求文件既能读又能写,则应选用的文件方式字符串是( )。
A.”wb+
B.”rb+”
C.”r+”
D.”ab+””
12.以下对指针变量的操作中,不正确的是( )。
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;”
13.若有说明:int a[10];则对数组元素的正确引用是( )。
A.a(5)
B.a[3,5]
C.a[10-10]
D.a[10]
14.以下能正确读入字符串的程序段是( )。
A.char str[10]; scanf(“%s”, &str);
B.char str[10], *p=str; scanf(“%s”, p[1]);”
C.char str[10], *p; p=str; scanf(“%s”, p);
D.char *p; scanf(“%s”, p);
15.设ch是char类型变量,其值是A,则表达式ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch的值是( )。
A.z
B.a
C.Z
D.A
16.以下在任何情况下计算两数积时都不会引起二义性的宏定义是( )。
A.#define MUL(x,y) x*y
B.#define MUL(x,y) (x*y)
C.#define MUL(x,y) (x)*(y)
D.#define MUL(x,y) ((x)*(y))”
17.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。
A.num%2==1
B.num%2
C.!(num%2==0)
D.!(num%2)
18.下面程序( )。(每行程序前的数字为行号) 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.没有错误
19.若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是( )。
A.i=x[1][1]
B.i=*(x[1]+1)
C.i=*(*(x+1)+1)
D.i=*(*(x+1))
20.若二维数组a有m列,则在a[i][j]前的元素个数为( )。
A.j*m+i
B.i*m+j-1
C.i*m+j+1
D.i*m+j
21.函数rewind(fp)的作用是:使文件位置指针( )。
A.重新返回文件的开头
B.返回到前一个字符的位置
C.自动移至下一个字符的位置
D.指向文件的末尾
22.执行以下程序后,m的值是( )。 #define MIN(x, y) (x)<(y) ? (x) : (y) main( ) { int i=12, j=8, m; m=10*MIN(i, j); printf(“%d\n”, m); }
A.80
B.8
C.120
D.12
23.若有定义: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]的值
24.若k为整型变量,则以下for循环的执行次数是( )。 for (k=2; k==0; ) printf(“%d”,k–);
A.无限次
B.2次
C.1次
D.0次
25.在C语言中,一维数组的定义方式为:类型说明符 数组名( )。
A.[整型表达式]
B.[整型常量或整型表达式]
C.[整型常量]
D.[常量表达式]