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