|
15秋《C语言》在线作业2
试卷总分:100 测试时间:--
一、单选题(共20道试题,共100分。)
1.以下叙述中不正确的是( )
A. 在不同的函数中可以使用相同的名字的变量
B. 函数中的形式参数是局部变量
C. 在一个函数内定义的变量只在本函数范围内有效
D. 在一个函数内的复合语句中定义的变量在本函数范围内有效
满分:5分
2.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为( )
A. D
B. 68
C. 不确定的值
D. C
满分:5分
3.以下描述中正确的是( )
A. 由于do~while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B. do~while循环由do开始,用while结束,在while(表达式) 后面不能写分号
C. 在do~while循环体中,一定要有能使while后表达式值 变为零("假")的操作
D. do~while循环中,根据情况可以省略while
满分:5分
4.下面程序的运行结果是( ) main() {char a[80]="AB",b[80]="LMNP"; int i=0;strcat(a,b); whi1e(a[i++]!='\0')b[i]=a[i];puts(b);}
A. LB
B. ABLMNP
C. AB
D. LBLMNP
满分:5分
5.以下不正确的说法是( )
A. register变量可以提高变量使用的执行效率
B. register变量由于使用的是CPU的寄存器,其数目是有限制的
C. extern变量定义的存储空间按变量类型分配
D. 全局变量使得函数之间的“耦合性”更加紧密,不利于模块化的要求
满分:5分
6.以下正确的描述是( )
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 函数的定义不可以嵌套,但函数的调用可以嵌套
C. 函数的定义和函数的调用均不可以嵌套
D. 函数的定义和函数的调用均可以嵌套
满分:5分
7.当把以下四个表达式用做if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( )
A. K%2
B. K%2==1
C. (K%2)!=0
D. !K%2==1
满分:5分
8.下面函数调用语句含有实参的个数为( ) func((expl,exp2), (exp3,exp4,exp5));
A. 1
B. 2
C. 4
D. 5
满分:5分
9.下面程序的运行结果是( ) #include<stdio.h> main(){ int k=0; char c='A'; do {switch(c++) {case 'A':k++;break; case 'B':k--; case 'C':k+=2;break; case 'D':k=k%2;continue; case 'E':k=k*10;break; default:k=k/3;} k++;} while(c<'
A. k=3
B. k=4
C. k=2
D. k=0
满分:5分
10.以下不正确的说法是( )
A. 全局变量,静态变量的初值是在编译时指定的
B. 静态变量如果没有指定初值,则其初值为0
C. 动态变量如果没有指定初值,则其初值不确定
D. 函数中的静态变量在函数每次调用时,都会重新设置初值
满分:5分
11.下面有关for循环的正确描述是( )
A. for循环只能用于循环次数已经确定的情况
B. for循环是先执行循环体语句,后判断表达式
C. 在for循环中,不能用break语句跳出循环体
D. for循环的循环体语句中, 可以包含多条语句,但必须用花括号括起来
满分:5分
12.假设调用函数有以下定义和函数f调用,则函数f中对形参数组错误定义的是( ) char c[5]={‘a’,’b’,’\0’,’c’,’\0’}; printf(“%s”,c);
A. f(int array[][6])
B. f(int array[3][])
C. f(int array[][4])
D. f(int array[2][5])
满分:5分
13.若有说明:int a[ ][4]={0,0};则下面不正确的叙述是( )
A. 数组a的每个元素都可得到初值0
B. 二维数组a的第一维大小为1
C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a行数为1
D. 只有元素a[0][0]和a[0][1]可得初值0,其余元素均得不到初值0
满分:5分
14.有定义:int x,*p1=&x, *p2;,则能使得p2也指向x的语句是( )
A. *p2=&x;
B. p2=p1;
C. p2=*p1;
D. p2=&p1;
满分:5分
15.以下程序有语法错误,有关错误原因的正确说法是 ( ) main() { int G=5,k; void prt_char(); ... k=prt_char(G); ... }
A. 语句void prt_char( );有错,它是函数调用语句,不能用void说明
B. 变量名不能使用大写字母
C. 函数说明和函数调用语句之间有矛盾
D. 函数名不能使用下划线
满分:5分
16.已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为( ) int a[3][4]; f(a);
A. f(int array[][6])
B. f(int array[3][])
C. f(int array[][4])
D. f(int array[2][5])
满分:5分
17.下面程序段,运行结果为( ) x=3; do {y=x--; if(!y){ printf("x");continue;} printf("#"); } while (1<=x<=2);
A. 将输出
B.
C. 将输出
D. *
E. 是死循环
F. 含有不合法的控制表达式
满分:5分
18.以下叙述中不正确的是( )
A. 预处理命令行都必须以#号开始
B. 在程序中凡是以#号开始的语句行都是预处理命令行
C. C程序在执行过程中对预处理命令行进行处理
D. 以下是正确的宏定义 #define IBM PC
满分:5分
19.若有说明: int a[3][4]={0};则下面正确的叙述是( )
A. 只有元素a[0][0]可得到初值0
B. 此说明语句不正确:
C. 数组a中各元素都可得到初值,但其值不一定为0。
D. 数组a中每个元素均可得到初值0
满分:5分
20.下面程序段的运行结果是( ) char c[]="\t\v\\\0will\n"; printf("%d",strlen(c));
A. 14
B. 3
C. 9
D. 字符串中有非法字符,输出值不确定
满分:5分
|
|