C语言专升本练习
一、单项选择题(每小题2 分,共 100分)
1、关于异常的含义,下列描述中最正确的一个是________。
A、程序编译错误
B、程序语法错误
C、程序自定义的异常事件
D、程序编译或者运行时发生的异常事件
2、下面程序段的输出结果是________。
#include<stdio.h>
main()
{
float x=1.236547;
printf("%f\n",(int)(x*1000+0.5)/(float)1000);
}
A、1.237000
B、输出格式说明与输出项不匹配,输出无定值
C、1.236000
D、1.24
3、下列表达式为关系表达式的为_________。(其中a为一整型变量)
A、3+4*5
B、a==10
C、a>0a:-a
D、a=1
4、以下程序的输出结果是 _______ 。
main()
{
int a=1,b=0,x=1,y=1;
switch(a)
{
case 1:switch(b)
{
case 0:x++;
break;
case 1:y++;
break;
}
case 2:x++;
y++;
break;
}
printf("%d,%d\n",x,y);
}
A、2,1
B、2,3
C、3,2
D、3 2
5、若要定义a为3×4的二维数组,正确的定义语句是________。
A、float a(3,4);
B、float a[3][4];
C、float a(3)(4);
D、float a[3,4];
6、下列语句序列执行后,i的值是________。 int i=10; do { i-=2; } while(i>6);
A、10
B、8
C、6
D、4
7、有以下程序
main()
{
char p[]={'a', 'b', 'c'} , q[10]={'a', 'b', 'c'} ;
printf("%d %d\n", strlen(p), strlen(q));
}
以下叙述中正确的是________。
A、在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B、由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3
C、由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3
D、由于p和q数组中都没有字符串结束符,故长度都不能确定
8、c程序中的宏展开是在________。strcmp比较数组
A、编译时进行的
B、程序执行时进行的
C、编译前预处理时进行的
D、编辑时进行的
9、以下关于字符串的叙述中正确的是________。
A、c语言中有字符串类型的常量和变量
B、两个字符串中的字符个数相同时才能进行字符串大小的比较
C、可以用关系运算符对字符串的大小进行比较
D、空串一定比空格打头的字符串小
10、将二进制数101101101111转换成十六进制数是________。
A、5557
B、B6F
C、7555
D、F6B
11、printf函数中用到格式符%-6s,其中数字6表示输出的字符串占用6列。如果字符串长度小于6,则输出按方式 ________。
A、从左起输出该字符串,右补空格
B、从右起输出该字符串,左补空格
C、0
D、输出错误信息
12、在位运算中,操作数每左移两位,其结果相当于________。
A、操作数乘以2
B、操作数除以2
C、操作数除以4
D、操作数乘以4
13、以下叙述中正确的是________。
A、两个字符串可以用关系运算符进行大小比较
B、函数调用 strlen(s)会返回字符串 s 实际占用内存的大小(以字节为单位)
C、C 语言本身没有提供对字符串进行整体操作的运算符
D、当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和
14、以下叙述正确的是________。
A、C程序中各函数之间既允许直接递归调用,也允许间接递归调用
B、C程序中各函数之间不允许直接递归调用,也不允许间接递归调用
C、C程序中各函数允许直接递归调用,不允许间接递归调用
D、C程序中各函数之间不允许直接递归调用,允许间接递归调用
15、下面程序的输出结果是 __________.
#include<stdio.h>
void main()
{
int a=5,b=3;
float x=3.14, y=6.5;
printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));
}
A、1,0
B、0, 1
C、1,1
D、0,0
16、break语句的正确的用法是________。
A、无论在任何情况下,都中断程序的执行,退出到系统下一层。
B、在多重循环中,只能退出最靠近的那一层循环语句。
C、跳出多重循环。
D、只能修改控制变量。
17、在函数声明中,下面哪项是不必要的________。
A、函数参数的类型和参数名
B、函数名
C、函数的类型
D、函数体
18、以下语句段执行后的输出结果是________。
#include<stdio.h>
main()
{
int k=3;
if(k) printf("###") else printf("&&&&");
}
A、###
B、&&&&
C、###&&&&
D、有语法错误,不能执行
19、已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中不正确的是________。
A、p=&j,p=p1;
B、p=a;
C、p=&a[j];
D、p=10;
20、设有以下语句
typedef struct s
{
int g;
char h;
}
t;
则下面叙述中正确的是________。
A、可用S定义结构体变量
B、可以用T定义结构体变量
C、S是struct类型的变量
D、T是struct S类型的变量
21、若有以下定义:int a[2][3]= { 2,4,6,8,10,12 } 则以下描述不正确的是 ______。
A、*(a+1)为元素a[1][0]的指针
B、a[1]+1为元素a[1][1]的指针
C、*(a+1)+2为元素a[1][2]的指针
D、*a[1]+2的值是12
22、若有定义语句:int x=12,y=8,z; 在其后执行语句z=0.9+x/y; 则z的值为___________。
A、1.9
B、1
C、2
D、2.4
23、设c1,c2均是char类型变量,则不正确的函数调用为______。
A、printf("%c,%c,",c1,c2)
B、getchar(c1)
C、putchar('\')
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论