西交《程序设计基础》在线作业
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.C语言中,定义结构体的保留字是()
A.union
B.typedef
C.struct
D.enum
2.C语言中,要求运算数必须是整型的运算符是()
A.^
B.>
C.%
D.!
3.int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为()
A.不一定
B.3
C.2
D.1
4.结构体类型的定义允许嵌套是指()
A.结构体型可以派生
B.成员是已经或正在定义的结构体型
C.成员可以重名
D.定义多个结构体型
5.逻辑运算符两侧运算对象的数据类型()
A.可以是任何类型的数据
B.只能是整型或字符型数据
C.只能是0或非0正数
D.只能是0或1
6.若二维数组a有m列,则在a[i][j]前的元素个数为()
A.j*m+i
B.i*m+j-1
C.i*m+j+1
D.i*m+j
7.若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句为()
A.printf(“%d”,p[5]);
B.printf(“%d”,*p[5]);
C.printf(“%d”,*(p+5));
D.printf(“%d”,*(a+5));
8.设 int x=1, y=1; 表达式(!x||y–)的值是()
A.2
B.1
C.0
D.-1
9.设变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型为()
A.不确定
B.int
C.float
D.double
10.下列程序的输出结果是()。 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++;break; } printf(“a=%d,b=%d\n”,a,b); }
A.a=2,b=2
B.a=2,b=1
C.a=1,b=1
D.a=1,b=0
11.下列选项中正确的语句组是()
A.char s[8]; s={“Beijing”};
B.char s[8]; s=”Beijing”;
C.char *s; s={“Beijing”};
D.char *s; s=”Beijing”;
12.以下不能正确定义二维数组的选项是()
A.int a[][2]={1,2,3,4};
B.int a[2][]={{1,2},{3,4}};
C.int a[2][2]={{1},{2}};
D.int a[2][2]={{1},2,3};
13.以下数值中,不正确的八进制数或十六进制数是()
A.16
B.0xaaaa
C.0x16
D.-16
14.以下叙述正确的是()
A.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
B.在C程序中,main函数必须位于程序的最前面
C.C语言本身没有输入输出语句
D.C程序的每行中只能写一条语句
15.以下叙述中正确的是()
A.C语言的源程序不必通过编译就可以直接运行
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C.C语言中的函数不可以单独进行编译
D.C源程序经编译形成的二进制代码可以直接运行
16.以下选项中,与k=n++完全等价的表达式是()
A.n=n+1,k=n
B.k=n,n=n+1
C.k+=n+1
D.k=++n
17.以下运算符中,优先级最高的运算符是()
A.(类型)
B.>=
C.+
D.*=
18.用户定义的函数不可以调用的函数是()
A.非整型返回值的
B.本文件外的
C.本函数下面定义的
D.main函数
19.用下列语句定义a,b,c,然后执行b=a、c=’b’+b,则b,c的值是()。 long a=0xffffff; int b; char c;
A.指向同一地址
B.-1和98
C.-1和97
D.0ffffff 和0x61
20.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()
A.由实参传给形参,再由形参传回实参
B.地址传递
C.单向值传递
D.传递方式由用户指定
二、多选题 (共 20 道试题,共 40 分)
21.定义语句:int x,y;若要通过scanf(“%d,%d”,&x,&y); 语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的有()
A.11,12
B.11,12
C.11, 12
D.11 12
22.对do-while语句描述正确的是()
A.do-while语句构成的循环必须使用break语句退出循环
B.do-while语句构成的循环,当while中的表达式值为非零时结束循环
C.do-while语句构成的循环,当while中的表达式值为零时结束循环
D.do-while语句构成的循环可以使用break语句退出循环
23.若a,b,c,d都是int型变量且初值为0,以下选项中正确的赋值语句是()
A.d=(c=22)-(b++);
B.d++;
C.c+b;
D.a=b=c=d=100;
24.若以下选项中的变量已正确定义,则不正确的赋值语句是()
A.x4=1+2=3;
B.x=3*x+x
C.x3=0x12
D.x1=26.8%3
25.设有以下定义 int a=0; double b=1.25; char c=’A’; #define d 2 则下面语句中正确的是()
A.d++;
B.c++;
C.b++;
D.a++;
26.下列选项中是C语言合法标志符的有()
A.stdio.h
B.main
C.good_morning
D.8abc
27.以下4个选项中,可以看作是一条语句的有()
A.{;}
B.if(b==0) m=1;n=2;
C.if(a>0);
D.a=0,b=0,c=0;
28.C语言中三种基本的类型为()
A.struct
B.int
C.float
D.char
29.以下描述正确的是()
A.调用函数时,将为形参分配内存单元
B.调用函数时,实参可以是表达式
C.调用函数时,实参与形参的类型必须一致
D.调用函数时,实参与形参可以共用内存单元
30.以下叙述正确的是( )
A.可以使用/*…*/对C程序中的任何部分作注释
B.C语言用”;”作为语句分隔符
C.C语言严格区分大小写英文字母
D.C程序书写格式自由,一行内可以写几个语句,一个语句也可以写在几行上.
31.以下叙述正确的是( )
A.预处理命令行都必须以”#”开始
B.在程序中凡是以”#”开始的语句行都是预处理命令行
C.#define ABCD是正确的宏定义
D.C程序在执行过程中对预处理命令行进行处理
32.若以下选项中的变量已正确定义,则不正确的赋值语句是()。
A.x4=1+2=3;
B.x=3*x+x
C.x3=0x12
D.int
33.以下选项中,合法的字符常量是()
A.’\xaa’
B.\t’
C.”n”
D.’\17′
34.以下选项中不合法的字符常量是()
A.D
B.”B”
C.68
D.’\010′
35.下列对逻辑运算符两侧的运算对象的数据类型描述不正确的是()。
A.可以是任何类型的数据
B.只能是0或非0正数
C.只能是0或1
D.a>=10
36.以下选项中合法的表达式是()
A.x+1=x+1
B.i=j==0
C.(char)(65+3)
D.0<=x<100
37.以下用户标识符,其中合法的是()
A.return
B.f2_G3
C.abc
D.A3-3
38.能正确表示逻辑关系:”a≥10″的C语言表达式是()。
A.x4=1+2=3;
B.a≥10
C.a>=10
D.!(a<10)
39.在定义int a[2][3];之后,对a的引用正确的有()
A.a[2][0]
B.a[1,3]
C.a[1>2][!1]
D.a[0][2]
40.正确的if语句形式是()
A.if (x>y && x!=y);
B.if (x==y) x+=y;
C.if (x<y) {x++;y++;}
D.if (x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);
三、判断题 (共 10 道试题,共 20 分)
41.break语句可用于switch语句,也可用于for、while和do循环语句中。( )
42.C程序中的每一行就是一个语句。( )
43.C语言的文件存取方式只能是顺序存取,不能随机存取。( )
44.C语言中,feof函数用来判断即将读入的是否是文件结束标志,它可用于二进制文件,但不能用于文本文件。( )
45.若定义char *str;则str=”BOOK”;是正确的。( )
46.数组类型不是C的基本数据类型,而是一种构造类型 。( )
47.一个C源程序可以由一个main()函数和若干个其它函数组成。( )
48.一个包含命令include可以包含几个头檔。( )
49.在某种意义上,char和int通用。( )
50.自增运算符和自减运算符的结合方向也是“自左向右”。( )