C程序设计2022年秋学期在线作业2
共40道题 总分:100分
一、单选题(共20题,60分)
1.不能把字符串:Hello!赋给数组b的语句是()
A、char b[10]={‘H’,’e’,’l’,’l’,’o’,’!’};
B、char b[10]; b=”Hello!”;
C、char b[10]; strcpy(b,”Hello!”);
D、char b[10]=”Hello!”;
2.若k为整型,则下列while循环 k=2; while(k==0) printf(“%d”,k); k–; printf(“\n”); 执行多少次?()
A、2
B、9
C、0
D、1
3.若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元: int *p; p=__________ malloc( sizeof(int)); 则应填入()
A、int
B、*int
C、(*int)
D、(int *)
4.设 int a=12; 表达式a+=a-=a*=a的值是()
A、12
B、144
C、0
D、132
5.下列标识符中,不能作为合法的C用户定义标识符的是()
A、a3_b3
B、void
C、_123
D、IF
6.以下选项中属于C语言的数据类型是()
A、复合型
B、双精度型
C、逻辑型
D、集合型
7.设有以下宏定义: #define H 30#define LEN H+20则执行赋值语句v=LEN*10;后,v的值是()
A、60东师答案请进:opzy.net或请联系微信:1095258436
B、230
C、500
D、0
8.有以下程序段: main(){ int a=5,*b,**c; c=&b; b=&a;……}程序在执行了c=&b;b=&a;语句后,表达式**c的值是()
A、变量a的地址
B、变量b的地址
C、变量a的值
D、变量b的值
9.以下能正确定义一维数组的选项是()
A、int num [];
B、#define N 100 int num [N];
C、int num[0..100];
D、int N=100; int num[N];
10.以下程序: main( ) { int a=011;printf(“%d\n”, a);} 的输出结果是()
A、12
B、11
C、10
D、9
11.为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与哪个if组成配对关系?()
A、缩排位置相同的if
B、在其之前未配对的if
C、在其之前未配对的最近的if
D、同一行上的if
12.下面程序 main() { char ch[7]={ “65ab21”}; int i,s=0; for(i=0;ch[i]>=’0′ && ch[i]<=’9′;i+=2) s=10*s+ch[i]-‘0’; printf(“%d\n”,s); }运行的结果是()
A、2ba56
B、6521
C、6
D、62
13.若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是()
A、p+1
B、*(p+3)
C、*(p+1)+3
D、*(p[0]+2))
14.要定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是()
A、int (*a)[3]
B、int *a[2]
C、int *a[3]
D、以上写法都不对
15.C语言中,合法的字符型常数是()
A、‘A’
B、“A”
C、65
D、A
16.两个指针变量不可以()
A、相加
B、比较
C、相减
D、指向同一地址
17.下列函数 int fun1(chat* x) {char*y=x; while(*y++); return(y-x-1);} 的功能是()
A、求字符串的长度
B、比较两个字符串的大小
C、将字符串x复制到字符串y
D、将字符串X连接到字符串Y后面
18.当说明一个共用体变量时,系统分配它的内存是()
A、各成员所需内存容量的总和
B、共用体中第一个成员所需内存
C、各成员所需内存容量的最大值
D、共用体中最后一个成员所需内存
19.不正确的指针概念是()
A、一个指针变量只能指向与其类型相同的变量
B、一个变量的地址称为该变量的指针
C、只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中
D、指针变量可以赋任意整数,但不能赋浮点数
20.以下不表示循环结构的是()
A、do-while
B、switch
C、for
D、while
二、判断题(共20题,40分)
1.数组名作为实参调用函数,实际传给形参的是数组中全部的元素值。
A、错误
B、正确
2.putchar()一次可以输出多个字符。
A、错误
B、正确
3.当循环体至少能执行一次时,while循环和do-while循环是等价的。
A、错误
B、正确
4.C程序总是从main( ) 函数的第一条语句开始执行的。
A、错误
B、正确
5.指针在任何情况下都可进行>,<,>=,<=,==运算。
A、错误
B、正确
6.getchar()函数没有参数。
A、错误
B、正确
7.C程序中,一行上可以写多个语句。
A、错误
B、正确
8.宏定义的宏名一定要大写,否则无效。
A、错误
B、正确
9.表达式 0195 是一个八进制整数。
A、错误
B、正确
10.如果一个函数不需要参数,则函数名后的括号可以省略。
A、错误
B、正确
11.在赋值语句<变量>=<表达式>中,当表达式的类型和变量的类型不一致时,以表达式的类型为准。
A、错误
B、正确
12.int i=20;switch(i/10){case 2:printf(“A”);case 1:printf(“B”);}的输出结果为A。
A、错误
B、正确
13.逻辑运算符的优先级为&&>||>!。
A、错误
B、正确
14.联合变量与结构变量的最大区别在于,联合变量的所有成员占用同一段内存,而结构变量的成员占用不同的内存。
A、错误
B、正确
15.假设有int a[10], *p; 则p=&a[0]与p=a等价。
A、错误
B、正确
16.C语言规定数组元素的下标从0开始。
A、错误
B、正确
17.一个函数中只允许有一条return语句。
A、错误
B、正确
18.若有形参定义:int a[10];则a++是合法的表达式。
A、错误
B、正确
19.在对某一函数进行多次调用时,系统会对相应的自动变量重新分配存储单元。
A、错误
B、正确
20.不允许对二维数组的部分元素赋初值。
A、错误
B、正确