第1题
C语言源程序文件经过C编译程序编译后生成的目标文件的后缀为( )。
A. .exe 解析:可执行文件的后缀
B. .c 解析:源文件的后缀
C. .obj 解析 :编译后目标文件的后缀
D. .bas 解析:工程文件也叫标准类模块文件
正确答案:C
第2题
若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum的值为( )。
A. 7
B. 8
C. 9
D. 10
正确答案:B
解析:第一步sum=num++ 结果(sum=7,num=8) 第二步 sum++ 结果(sum=8,num=8) 第三步 ++num 结果 (sum=8,num=9)
第3题
已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是( )。
A. 65,66
B. 65,68
C. A,68
D. A,B
正确答案:A
解析:printf("%d,%d",c1,c2-2); 格式控制符为%d,代表输出十进制,那么就排除C、D 两项。已知字符'A'的ASCⅡ代码值是65,那么D就是68.
输出列表项c2-2也就是68-2,结果为66
第4题
void main()
{
int x=1,a=0,b=0; 执行第一步,x=1;
switch (x)
{
case 0: b++;
case 1: a++; 第二步,case后的值与x项匹配,执行这里,a=1;
case 2: a++;b++; 第三步 ,由于上一步没有break,所以继续执行case2,a=2.b=1
}
printf("a=%d,b=%d",a,b); 第四步,输出
}
该程序的输出结果是( )
A. a=1,b=1
B. a=1,b=0
C. a=2,b=2
D. a=2,b=1
正确答案:D
第5题
下列程序的输出为( )。
void main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
A. y=-1
B. y=0
C. y=1
D. while构成无限循环
正确答案:A
解析:当y=0时,后面就不循环了。--在变量y的后面,也就是说判断完y=0不执行循环后,y-1.所以值为-1
第6题
int a[10];合法的数组元素的最小下标值为( )。
A. 10
B. 9
C. 1
D. 0 解析 数组下标以0开头
正确答案:D
第7题
下述程序的输出结果是( )。
void prt(int *x)
{
printf("%d",++*x); 第三步 ++在前,先+再输出,所以值为31
}
main()
{
int y=30; 第一步 y=30
prt(&y); 第二步 把y的地址传给void prt(int *x),地址里的值是30
}
A. 32
B. 30
C. 29
D. 31
正确答案:D
第8题
file1.c中有命令,#include <file2.c>,若file2.c中有全局静态变量a,则( )。
A. a在file1.c中应用extern说明
B. a在file1.c中有效,不必用extern说明
C. a在file1.c中不生效
D. a在file1.c和file2.c中均不生效
正确答案:B
解析:#include 想一想什么叫文件包含命令
第9题
设有如下函数定义:
int f(char *s)
{
char *p=s; 第二步 把s的首地址给P,也就是goodbye!中的第一个字符的地址
while(*p!='\0') p++; 第三步 当*p的值不是结束符时,p指向下个地址,直到结束符为止,是不是P就到8了
return (p-s); 第四步返回p和s的差。s就是首地址嘛! 0 , 8-0不就是8吗?
}
如果在主程序中用下面的语句调用上述函数,则输出结果是( )。
printf("%d\n",f("goodbye!")); 第一步 把字符串传给int f(char *s)
A. 3
B. 6
C. 8
D. 0
正确答案:C
第10题
下面说法中错误的是( )。
A. 共用体变量的地址和它各成员的地址都是同一地址
B. 共用体内的成员可以是结构变量,反之亦然
C. 函数可以返回一个共用体变量 解析:不能把共用体变量作为函数参数,也不能使函数带回共用体变量,但可以使用指向共用体变量的指针
D. 在任一时刻,共用体变量的各成员只有一个有效
正确答案:C
第11题
C语言本身没有输入输出语句。
正确答案:A
第12题
关系运算符 <= 与 == 的优先级相同。
A. 正确
B. 错误
正确答案:B
解析:<=高于 ==
第13题
scanf函数的一般格式为:scanf(格式控制字符串,输入表列);。
正确答案:A
第14题
C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。
正确答案:A
第15题
条件表达式x?'a':'b'中,若x=0时,表达式的值为b。
A. 正确
B. 错误
正确答案:B
解析:表达式的值为'b',只不过我们在输出控制台上是b看不出‘ ’,既然是应试做题嘛,严谨点
第16题
运算符的级别由高向低依次为赋值运算符->关系运算符->算术运算符->逻辑运算符->!。
A. 正确
B. 错误
正确答案:B
解析:单目>算数>关系>逻辑>赋值
第17题
引用数组元素时,下标可以是整型表达式或整型常量。
正确答案:A
第18题
do-while循环由do开始,while结束,在while(表达式)后面不能加分号。
A. 正确
B. 错误
正确答案:B
解析:格式要求,分号必须加
第19题
C语言数组的下标可以从-1开始。
A. 正确
B. 错误
正确答案:B
解析:从下标0开始
第20题
给数组赋初值时,初值的个数可以小于所定义的元素的个数。
正确答案:A
第21题
定义一维数组的形式为:类型说明数组名[表达式],其中表达式可以是正整型常量表达式、字符常量表达式。
正确答案:A
第22题
若在程序某处定义了某全局变量,但不是程序中的所有函数中都可使用它。
正确答案:A
第23题
C语言所有函数都是外部函数。
A. 正确
B. 错误
正确答案:B
解析:用static修饰的不是外部函数
第24题
在C语言中,程序总是从第一个函数开始执行,最后一个函数结束。
A. 正确
B. 错误
正确答案:B
解析:在C语言中,程序总是main函数开始执行,main函数结束。
第25题
在定义宏时,在宏名与带参数的括弧之间不应加空格。
正确答案:A
第26题
C语言中,_____是程序的基本组成部分。
正确答案: 函数
第27题
设(k=a=5,b=3,a*b),则表达式的值为_____。
正确答案: 15
解析:逗号运算符的运算顺序是从左到右,值为最后一个表达式的值
第28题
已知a=13,b=6,a%b的十进制数值为_____。
正确答案: 1
解析:13%6,上2余1嘛
第29题
若有以下定义,则计算表达式y+=y-=m*=y后的y值是_____。
int m=5,y=2;
正确答案: -16
解析:
y+=y-=m*=y → y+=y-=5*2 → y+=y-=10 → y+=2-10 → y+=-8 y=y+(-8) y本身的值也是-8
第30题
执行下面两个语句,输出的结果是_____。
char c1=97,c2=98;
printf("%d %c",c1,c2);
正确答案: 97 b
解析:输出控制符%d输出十进制,所以第一个是97,格式控制符 %c,是输出ASCll对应的字符,所以是b. 注意printf("%d %c",c1,c2); 两个控制符中间是有空格的
第31题
当a=1,b=2,c=3时,执行以下程序段后a=_____。
if (a>c)
{
b=a;
a=c;
c=b;
}
正确答案: 3
解析:这个地方if (a>c) 是不成立的,a还是应该等于1.估计是他们网站的人上资料的时候不仔细
第32题
当a=1,b=2,c=3时,执行以下程序段后b=_____。
if (a>c)
{
b=a;
a=c;
c=b;
}
正确答案: 2
解析:这个地方if (a>c) 是不成立的,后面不执行,所以变量的值不变 a=1,b=2,c=3
第33题
int x=2,y=3,z=4;
则表达式x+(y>!z)的值为_____。
正确答案: 3
解析:x+(y>!z) → x+(y>!4) → x+(y>0) → x+1 结果为3
第34题
设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是_____。
for (x=0,y=0;y!=123&&x<3;x++)
{
scanf ("%d",&y);
}
正确答案: 3
解析:y!=123&&x<3
第一次 x=0 x<3
第二次 x=1 x<3
第三次 x=2 x<3
第四次 x=3 x<3 不成立
第35题
static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
其中a[1][2]的值为_____。
正确答案: 6
解析:
1,2,3
4,5,6
7,8,9
把内容填充成这样的矩阵,挨着数下标嘛,
第36题
字符串比较的库函数是_____,只写函数名即可。
正确答案: strcmp
第37题
函数不可以进行嵌套定义,但可以进行嵌套_____。
正确答案: 调用
第38题
预处理命令行都必须以_____号开始。
正确答案: #
第39题
将函数funl的入口地址赋给指针变量p的语句是_____。
正确答案: p=funl;
第40题
设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是 _____。
union stud
{
char num[6];
float s[4]; 解析 1个foat4个字节,4*4=16
double ave;
}
a,*p;
正确答案: 16
第41题
功能:用函数将第2个串连接到第1个串之后,不允许使用strcat函数。
#include<stdio.h>
void len_cat(char c1[],char c2[])
{
int i,j;
for(_____1_____);
for(_____2_____)
{
_____3_____
}
_____4_____
}
解析:1、做这种题,只看需要填空的部分就可以了,其他地方不外乎传参和调用
2、很明显i和j是拿来做循环用的,第2个串连接到第1个串之后,那就是两个串循环到\0就不用再循环了,那么循环条件就出来了。
i=0;c1[i]!='\0';i++
j=0;c2[j]!='\0';j++
3、第二个串到第一个串之后
c1[i+j]=c2[j];
4、字符串是需要结束符的,上面循环中,我们是去掉了结束符的,所以这里加上
c1[i+j]='\0';
第42题
功能:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1/2!+1/4!+...+1/m!(m是偶数)
#include<stdio.h>
double fun(int m)
{
_____1_____
int i,j;
double s=1;
for(_____2_____)
{
for(_____3_____)
_____4_____
_____5_____
}
_____6_____
}
解析:1、做这种题,只看需要填空的部分就可以了,其他地方不外乎传参和调用
2、既然是求y=1/2!+1/4!+...+1/m!,那么我们需要一个y变量存值
第一句就是 double y=0.0;
3、题目说了,m是偶数,我们要计算m范围内的,所以第二句为i=2;i<=m;i+=2
4、把阶乘求出来
j=i-1;j<=i;j++
s=s*j;
5、 根据公式 y=y+1.0/s;
6、返回求的结果 return y;
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复