大一C语言期末考试选择复习题.docx
《大一C语言期末考试选择复习题.docx》由会员分享,可在线阅读,更多相关《大一C语言期末考试选择复习题.docx(24页珍藏版)》请在冰豆网上搜索。
大一C语言期末考试选择复习题
###
~~~1
下列叙述中正确的是()。
程序设计就是编制程序
程序的测试必须由程序员自己去完成
程序经调试改错后还应进行再测试
程序经调试改错后不必进行再测试
~C
~~~1
以下叙述中正确的是()。
C语言的源程序不必通过编译就可以直接运行
C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C源程序经编译形成的二进制代码可以直接运行
C语言中的函数不可以单独进行编译
~B
~~~1
下面关于算法的正确描述是()。
算法就是计算的方法
算法就是解决问题的步骤
一个问题的算法是唯一的
一个问题的算法只能用一种语言设计
~B
~~~1
对计算机进行程序控制的最小单位是()。
语句
字节
指令
程序
~C
~~~1
编制一个好的程序首先要确保它的正确性和可靠性,除此以外,通常更注重源程序的()。
易使用性、易维护性和效率
易使用性、易维护性和易移植性
易理解性、易测试性和易修改性
易理解性、安全性和效率
~B
~~~1
与高级语言相比,用低级语言(如机器语言等)开发的程序,其结果是()。
运行效率低,开发效率低
运行效率低,开发效率高
运行效率高,开发效率低
运行效率高,开发效率高
~C
~~~1
程序设计语言的语言处理程序是一种()。
系统软件
应用软件
办公软件
工具软件
~A
~~~1
()是常见的两类程序设计语言处理程序。
高级语言程序和低级语言程序
解释程序和编译程序
编译程序和操作系统
系统程序和应用程序
~B
~~~1
计算机只能直接运行()。
高级语言源程序
汇编语言源程序
机器语言程序
任何源程序
~C
~~~1
将高级语言的源程序转换成可在机器上独立运行的程序的过程称为()。
解释
编译
连接
汇编
~B
~~~1
著名计算机科学家NikiklausWirth提出一个公式:
程序=______。
数据+运算符
数据结构+算法
结构+函数
运算符+运算数
~B
~~~1
解释程序和编译程序的主要区别之一在于______。
单用户与多用户的差别
对用户程序的查错能力
机器执行的效率
是否生成目标程序
~D
~~~1
以下叙述正确的是______。
C语言比其他语言高级
C语言可以不用编译就能被计算机识别执行
C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
C语言出现的最晚、具有其他语言的一切优点
~C
~~~2
C语言中最简单的数据类型包括()。
整型、实型、逻辑型
整型、实型、字符型
整型、字符型、逻辑型
整型、实型、逻辑型、字符型
~B
~~~2
请选出可用作C语言用户标识符的一组标识符()。
void,define,WORD
a3_b3,_123,IF
FOR,——abc,Case
2a,Do,Sizeof
~B
~~~2
C语言中合法的字符常量是()
'\084'
'\x43'
'ab'
"\0"
~B
~~~2
下列运算符中,哪一个优先级最低?
?
:
=
>=
==
~B
~~~2
以下能正确定义且赋初值的语句是()。
intn1=n2=10;
charc=32;
floatf=f+1.1;
doublex=12.3e2.5;
~B
~~~2
设有定义:
intk=1,m=2;floatf=7;则以下选项中错误的表达式是()。
k=k>=k
-k++
k%f
k>=f>=m
~C
~~~2
设有定义:
inta=2,b=3,c=4;则以下选项中值为0的表达式是()。
(!
a==1)&&(!
b==0)
!
a||b||c
a&&b
a||(b+b)&&(c=a)
~A
~~~2
Charp[]={'a','b','c'},q[]="abc";printf("%d%d%d\n",sizeof(p),sizeof(q),strlen(q));以上程序段的输出结果是()。
344
333
343
434
~C
~~~2
根据程序段判断:
chara1='M',a2='m';printf("%c\n",(a1,a2));以下叙述中正确的是()。
程序输出大写字母M
程序输出小写字母m
格式说明符不足,编译出错
程序运行时产生出错信息
~B
~~~2
设有如下定义:
inta=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:
(m=a>b)&&(n=c>d)后,n的值为()。
1
2
3
0
~B
~~~2
有以下程序段charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);当运行时输入:
a<回车>后,以下叙述中正确的是()。
变量c1将被赋字符a,c2被赋回车符
程序将等待用户输入第二个字符
变量c1被赋字符a,c2中仍是原有字符2
变量c1被赋字符a,c2中将无确定值
~A
~~~2
表达式:
10!
=9的值是()。
true
非零值
0
1
~D
~~~2
在c语言中,运算对象必须是整型数的运算符是()。
%
\
%和\
**
~A
~~~2
以下语句的输出结果是_____。
printf("%d\n",NULL);
不确定的(因变量无定义)
0
-1
1
~B
~~~2
能正确表示a和b同时为正或同时为负的逻辑表达式是________。
(a>=0||b>=0)&&(a<0||b<0)
(a>=0&&b>=0)&&(a<0&&b<0)
(a+b>0)&&(a+b<=0)
a*b>0
~D
~~~2
表示关系x>y≥z,则正确的c语言表达式为________。
x>y>=z
(x>y)&(y>=z)
(y=z)
(x>y)and(y>=z)
~C
~~~2
有语句scanf("%d,%d",&a,&b);要使变量a、b分别得23、45,则正确的输入形式为_______。
2345
23,45
23;45
2345
~B
~~~2
以下能定义为用户标识符的是____。
34
e#
int
name
~D
~~~2
下列程序段的运行结果是______。
inta=2,c=5;printf("a=%d,b=%d\n",a,c);
a=%2,b=%5
a=2,b=5
a=d,b=d
a=%d,b=%d
~B
~~~2
英文小写字母c的ASCII码为99,英文大写字母C的ASCII码为______。
50
66
52
67
~D
~~~2
下列叙述中错误的是()。
用户所定义的标识符允许作到使用关键字
用户所定义的标识符应尽量作到“见名知意”
用户所定义的标识符必须以字母或下划线开头
用户所定义的标识符中,大小写字母代表不同标识
~A
~~~2
若inta=3,则执行完表达式a+=a-=a*a后,a的值是()。
-3
9
-12
6
~C
~~~2
设x、y、z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为()。
4
16
32
52
~C
~~~2
设有如下的变量定义:
inti=8,k,a,b;unsignedlongw=5;doublex=1.42,y=5.2;则以下符合C语言语法的表达式是()。
a+=a-=(b=4)*(a=3)
x%(-3);
a=a*3=2
y=float(i)
~A
~~~2
假定有以下变量定义:
intk=7,x=12;则能使值为3的表达式是()。
x%=(k%=5)
x%=(k-k%5)
x%=k-k%5
(x%=k)-(k%=5)
~D
~~~2
以下叙述中正确的是()。
输入项可以是一个实型常量,如:
scanf("%f",3.5);
只有格式控制,没有输入项,也能正确输入数据到内存,例如:
scanf("a=%d,b=%d");
当输入一全实型数据时,格式控制部分可以规定小数点后的位数,例如:
scanf("%4,2f",&.f);
当输入数据时,必须指明变量地址,例如:
scanf("%f",&f);
~D
~~~2
设x和y均为int型变量,则以下语句:
x+=y;y=x-y;x-=y;的功能是()。
把x和y按从大到小排列
把x和y按从小到大排列
无确定结果
交换x和y中的值
~D
~~~2
以下程序段的输出结果是:
()。
inta=12,b=12;printf("%d%d\n",--a,++b);
1010
1212
1110
1113
~D
~~~2
编制好的程序时,应强调良好的编程风格,如,选择标识符的名字时应考虑()。
名字长度越短越好,以减少源程序的输入量
多个变量共用一个名字,以减少变量名的数目
选择含义明确的名字,以正确提示所代表的实体
尽量用关键字作名字,以使名字标准化
~C
~~~3
一个C程序的执行是从()。
本程序的main函数开始,到main函数的结束
本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束
本程序文件的main开始,到本程序文件的最后一个函数的结束
本程序文件的第一个函数开始,到本程序文件的main函数的结束
~A
~~~3
以下叙述正确的是()。
在C程序中main函数必须位于程序的最前面
C程序的每行中只能写一条语句
C语言本身没有输入输出语句
在对一个C程序进行编译的过程中,可发现注释中的错误
~C
~~~3
C语言规定,在一个源程序中,main函数的位置()。
必须在最开始
必须在系统调用的库函数的后面
可以任意
必须在最后
~C
~~~3
结构化程序设计所规定的三种基本结构是()。
主程序、子程序、函数
树形、网形、环形
顺序、选择、循环
输入、处理、输出
~C
~~~4
以下叙述中错误的是()。
C语句必须以分号结束
复合语句在语法上被看作一条语句
空语句出现在任何位置都不会影响程序运行
赋值表达式末尾加分号就构成赋值语句
~C
~~~4
当把以下四个表达式用做if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是()。
K%2
K%2==1
(K%2)!
=0
!
K%2==1
~D
~~~4
下面有关for循环的正确描述是()。
for循环只能用于循环次数已经确定的情况。
for循环是先执行循环体语句,后进行循环条件判断。
在for语句中,不能用break语句跳出循环体。
for循环体语句中,可以包含多条语句,但要用花括号括起来。
~D
~~~4
设变量已正确定义,则以下能正确计算f=n!
的程序段是()。
f=0;for(i=1;i<=n;i++)f*=n;
f=0;for(i=1;i<=n;i++)f*=i;
f=1;for(i=n;i>1;i++)f*=i;
f=1;for(i=n;i>=2;i--)f*=i;
~D
~~~4
C语言中下列叙述正确的是()。
不能使用do-while语句构成的循环
do-while语句构成的循环,必须用break语句才能退出
do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
do-while语句构成的循环,当while语句中的表达式值为零时结束循环
~D
~~~4
以下程序段输出结果是:
()。
intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);
7
6
5
4
~C
~~~4
当执行以下程序段时:
()。
x=-1;do{x=x*x;}while(!
x);
循环体将执行两次
循环体将执行一次
循环体将执行无限次
系统将提示有语法错误
~B
~~~4
执行以下程序段后,输出的结果是()。
inty=10;do{y--;}while(--y);print("%d\n",y--);
-1
1
8
0
~D
~~~4
为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。
缩排位置相同的if
与其之前未配对的if
与其之前未配对的最近的if
同一行上的if
~C
~~~4
有以下程序inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);执行后的输出结果是()。
自然数1~9的累加和
自然数1~10的累加和
自然数1~9中的奇数之和
自然数1~10中的偶数之和
~D
~~~5
以下关于函数的叙述中正确的是()。
每个函数都可以被其他函数调用(包括main函数)
每个函数都可以被单独编译
每个函数都可以单独运行
在一个函数内部可以定义另一个函数
~B
~~~5
设函数FUN的定义形式为:
voidfun(charch,floatx){……………}以下对函数的调用语句中,正确的是()。
fun("abc",3.0);
t=fun("abc",16.5);
fun('65',2.8);
fun(32,32);
~D
~~~5
在C程序中,若对函数类型未加说明,则函数的隐含类型为()。
int
double
void
char
~A
~~~5
简单变量做实参时,它相对应形参之间的数据传递方式是()。
地址传递
单向值传递
由实参传给形参,再由形参传回给实参
由用户指定传递方式
~B
~~~5
建立函数的目的选项是()。
提高程序的执行效率
提高程序的可读性
减少程序的篇幅
减少程序文件所占内存
~B
~~~5
下面关于递归的说法错误的是()。
每次当一个递归函数被调用时,程序首先应该检查其些基本的条件是否满足了,例如某个参数的值等于零,函数应停止递归;
每次当函数被递归调用时,传递给函数一个或多个参数,应该以某种方式变得"更简单";
一般情况下,递归方法比迭代方法快;
递归函数的目的是执行一系列调用,一直到达某一点,序列终止。
~C
~~~5
下面说法正确的是()。
函数定义可以嵌套,但函数调用不能嵌套
函数定义不可以嵌套,但函数调用可以嵌套
函数定义和调用均不能嵌套
函数定义和调用均可以嵌套
~B
~~~5
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。
函数调用可以作为独立的语句存在
函数调用可以作为一个函数的实参
函数调用可以出现在表达式中
函数调用可以作为一个函数的形参
~D
~~~5
以下关于说法正确的是()。
实参和与其对应的形参各占用独立的存储单元
实参与其对应的形参共占用一个存储单元
实参和与其对应的形参同名时才共占用存储单元
形参虚拟的,不占用存储单元
~A
~~~5
若调用一个函数(无全局、指针、静态变量),且此函数中没有return语句,则关于该函数正确的说法是()。
无返回值
返回若干个系统默认值
能返回一个用户所希望的函数值
返回一个不确定的值
~A
~~~5
在c语言中以下不正确的说法是()。
实参可以是常量、变量或表达式
形参可以是常量、变量或表达式
实参可以为任意类型
形参应与其对应的实参类型一致
~B
~~~5
下列程序段的输出结果是()。
#defineM(x,y)x*yprintf("%d",M(10+2,2));
14
24
50
32
~A
~~~5
若程序中定义了以下函数:
doublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。
doublemyadd(doublea,b);
doublemyadd(double,double);
doublemyadd(doubleb,doublea);
doublemyadd(doublex,doubley);
~A
~~~5
程序设计中,以下错误的描述是()。
在函数之外定义的变量称为外部变量,外部变量是全局变量
在一个函数中既可以使用本函数中的局部变量,又可以使用外部变量
外部变量定义和外部变量说明的含义不同
若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用
~A
~~~5
程序设计中,建立函数的首要目的是()。
减少程序的运行时间
提高程序的可读性
减少程序的篇幅
减少程序运行时文件所占内存
~B
~~~5
程序设计中,下列结论只有一个是正确的,它是()。
在递归函数中使用自动变量要十分小心,因为在递归过程中,不同层次的同名变量在赋值的时候一定会相互影响
在递归函数中使用自动变量要十分小心,因为在递归过程中,不同层次的同名变量在赋值的时候可能会相互影响
在递归函数中使用自动变量不必担心,因为在递归过程中,不同层次的同名变量在赋值的时候肯定不会相互影响
在程序设计语言中无法得出以上结论之一
~C
~~~5
下面关于变量的说法错误的是()。
全局变量是所有在函数和类外定义的变量
局部变量是在块或函数中定义的变量
在同一作用域内变量不能同名
变量作用域不能重叠
~D
~~~5
下面关于变量的生存周期的说法错误的是()。
全局变量的生存周期从程序运行开始到程序结束
局部变量的生存周期从块或函数的开始到块或函数的结束
静态局部变量的生存周期与全局变量相同
静态全局变量的作用域是整个程序
~D
~~~6
下列数据结构中,能用二分法进行查找的是()。
顺序存储的有序线性表(数组)
线性链表
二叉链表
有序线性链表
~A
~~~6
数组名作为参数传递给函数,作为实在参数的数组名被处理为()。
该数组的元素个数
该数组中各元素的值
该数组的首地址
以上答案均不对
~C
~~~6
若使用一维数组名作函数实参,则以下正确的说法是()。
无须在主调函数中说明此数组的大小
实参数组类型与形参数组类型可以不匹配
在被调用函数中,不需要考虑形参数组的大小
实参数组名与形参数组名必须一致
~C
~~~6
函数调用strcat(strcpy(str1,str2),str3)的功能是()。
将串str1复制到串str2中后在连接到串str3之后
将串str1连接到串str2之后再复制到串str3之后
将串str2复制到串str1中后再将串str3连接到串str1之后
将串str2连接到串str1中后再将串str1复制到串str3中
~C
~~~6
下列描述中不正确的是()。
字符型数组中可以存放字符串
可以对字符型数组进行整体输入、输出
可以对整型数组进行整体输入、输出
不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
~C
~~~6
设有数组定义:
chararray[]="HELLO";则数组array的长度为()。
4
5
6
7
~C
~~~6
以下不能正确进行字符串赋初值的语句是()。
charstr[5]="good!
";
charstr[]="good!
";
char*str="good!
";
charstr[5]={'g','o','o','d'};
~A
~~~6
当调用函数时,实参是一个数组名,则向函数传送的是()。
数组的长度
数组的首地址
数组每一个元素的地址
数组每个元素中的值
~B
~~~6
下面正确进行字符串赋值操作的语句是()。
chars[5]=["ABCDDE"];
chars[4]={'A','B','C','D','E'};
char*s;s="ABCDEF";
char*s;scanf("%s",s);
~C
~~~6
有以下程序:
chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));执行后输出结果是()
77
88
810
1010
~C
~~~6
以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。
chars[10]="abcdefg";
chart[]="abcdefg",*s=t;
chars[10];s="abcdefg";
chars[10];strcpy(s,"abcdefg");
~C
~~~6
若有以下程序段:
inta[5]={1,2,3,4,5};int*p=a;则以下说法正确的是()
a可以做自增运算,即有a++;
p可以做自增运算,即有p++;
a和p都可以做自增运算,即有a++和p++;
a和p都不能做自增运算。
~B
~~~7
若有语句:
char*LINE[5];以下叙述中正确的是()。
定义LINE是一个数组,每个数组元素是一个基类型为char的指针变量
定义LINE是一个指针变量,该变量可以指向一个长度为5的字符型数组
定义LINE是一个指针数组
定义LINE是一个指向字符型函数的指针
~A
~~~7
设有定义,intn1=0,n2,*p=&n2,*q=&n1;以下赋值语句中与n2=n1;语句等价是()。
*p=*q;
p=q;
*p=&n1;
p=*q;
~A
~~~7
若有定义:
intx=0,*p=&x;则语句printf("%d\n",*p);的输出结果是()。
随机值
0
x的地址
p的地址
~B
~~~7
有以下程序:
main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p-2;printf("%d\n",*p+*q);}程序运行后的输出结果是()。
16
10
8
6
~D
~~~7
已定义以下函数:
intfun(int*p){return*p;}该函数的返回值是()。
不确定的值
形参p中存放的值
形参p所指存储单元中的值
形参p的地址值
~C
~~~7
若己定义:
inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是()。
p+l
a+l
a++