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