东大20春学期《高级语言程序设计基础》在线平时作业2[答案]满分答案
20春学期《高级语言程序设计基础》在线平时作业2
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 100 分)
1.下列关于C语言的叙述错误的是( )。
A.大写字母和小写字母的意义相同
B.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
C.同一个运算符号在不同的场合可以有不同的含义
D.不同类型的变量可以在一个表达式中
2.以下在任何情况下计算两数积时都不会引起二义性的宏定义是( )。
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))"
3.若a、b、c均为int型变量,则执行以下程序段后的输出结果为( )。 b=(a=10,a+5,c=10); printf("a=%d,b=%d,c=%d\n",a,b,c); c=(a=10,b=5,a+b);printf("a=%d,b=%d,c=%d\n",a,b,c);
A.a=10,b=15,c=10a=10,b=5,c=10
B.a=10,b=10,c=10a=10,b=5,c=5
C.a=10,b=10,c=10a=10,b=5,c=15
D.a=10,b=10,c=10a=10,b=5,c=10
4.以下正确的函数形式是( )。
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; }"
5.函数rewind(fp)的作用是:使文件位置指针( )。
A.重新返回文件的开头
B.返回到前一个字符的位置
C.自动移至下一个字符的位置
D.指向文件的末尾
6.若有语句: char s1[ ]="Shenyang", s2[10],*s3, *s4="NEU_soft"; 则对库函数strcpy调用正确的是( )。
A.strcpy(s4, s1);"
B.strcpy(s3, s1);
C.strcpy(s2, s4);
D.strcpy(s1, s4);
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.以下程序执行后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
9.设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是( )。 for (y=100; x!=y; ++x,y++) printf("****\n");
A.是无限循环
B.循环体只执行一次
C.循环体一次都不执行
D.for语句中存在语法错误
10.已知学生记录描述如下,下面对结构体成员"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;
11.以下对指针变量的操作中,不正确的是( )。
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;"
12.若有定义: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))
13.设有定义:int a=1, *p=&a; float b=2.0; char c='A'; ,以下不合法的运算是( )。
A.p++;
B.c--;
C.b++;
D.a--;
14.执行下面程序段后,x的值是( )。 int x;printf("%d\n",(x=3*5,x+5));
A.5
B.20
C.15
D.10
15.下面对typedef的叙述中不正确的是( )。
A.用typedef可以定义新的数据类型
B.用typedef只是将已存在的类型用一个新的标识符来代表
C.用typedef不能定义变量名
D.使用typedef有利于程序的通用和移植
16.以下正确的定义语句是( )。
A.long b[2][3]={{1},{1,2},{1,2,3}};
B.int a[1][4]={1,2,3,4,5};
C.float x[3][]={{1},{2},{3}};
D.double y[][3]={0};
17.若有定义:int x[10], *p=x;,则*(p+5)表示( )。
A.选项内容11
B.选项内容11
C.数组元素x[6]的地址
D.数组元素x[6]的值
E.数组元素x[5]的地址
F.数组元素x[5]的值
18.设x,y是float型变量,则不正确的赋值语句是( )。
A.y=int(5);
B.x*=y+1;
C.x=y=0;
D.++x;
19.执行以下程序后,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
20.下列程序的输出结果是( )。 #include void fun(); void main() { int x=1; if(x= =1) { int x=2; printf(“%d”,++x); } void fun() { printf(“%d”,x++);}
A.2,2,2
B.2,2,1"
C.2,1,1
D.1,2,1
东大20春学期《高级语言程序设计基础》在线平时作业2[答案]历年参考题目如下: