第1题
C语言源程序文件经过C编译程序编译后生成的目标文件的后缀为( C)
解析:源文件后缀为.c,目标文件为.obj,可执行程序为.exe
第2题
下列程序段的输出结果为( )。
float k=0.8567;
printf("%4.1f%%",k*100);
解析:答案为85.7%。%4.1f为输出域宽为4,小数点保留一位,四舍五入为85.7,%%转义输出一个%
第3题
已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C )。
解析:scanf( " 输入控制符 " ,输入参数);在输入格式控制符中,除了格式说明以外的字符需要原样输入
第4题
若k是整型,则以下程序段的执行结果是( B)。
k=-3;
if(k<=0)
printf("####")
else printf("&&&&");
解析:printf后面差分号
第5题
以下for循环的执行次数是(C )。
for(x=0,y=0;(y=123)&&(x<4);x++);
解析:注意判断(y=123)&&(x<4),关系&&两侧都加了()所以从左至右运算,(y=123)是赋值,!0为真,所以左侧可以不看了,只看(x<4)。x的值增长为0,1,2,3,4,当4<4为0,后面不执行。
第6题
下面合法的语句定义是(A )。
A. char a[ ]={'0','1','2','3','4','5'};
B. int a[ ]="string"; 解析:数据类型不对
C. int a[5]={0,1,2,3,4,5}; 解析:元素个数超限
D. char a="string"; 解析:字符型变量只能赋值单个字符
第7题
在所有函数之前,定义一个外部变量的形式为static int x;那么错误的叙述是( A)。
A. x的值不可以永久保留 解析:静态变量保值且生存期和程序生存周期一致
B. 将变量存放在静态存储区
C. 使变量x可以由系统自动初始化为0
D. 使x只能被本文件中的函数引用
第8题
在“文件包含”的预处理中,被包含的文件应是( A)。
A. 源文件
B. 可执行文件
C. 目标文件
D. 批处理文件
解析:做这道题建议了解下C程序编译执行过程,就再也不会做错。编辑→编译→链接→执行,注意每个过程产生什么样的文件,可借鉴选择题1
第9题
以下程序的输出结果是(B )。
#include<stdio.h>
f(char *s)
{
char *p=s;
while(*p!='\0')
p++;
return(p-s);
}
void main()
{
printf("%d\n",f("ABCDEF"));
}
解析:实参为ABCDEF,*p是指针,字符串结束符为\0。char *p=s;得到首地址,*p!='\0'遇到结束符截止,否则p++;你直接数有几个字符就可以了
定义结构体的关键字是(A )。
A. struct
B. typedef 解析可以理解为给已有的类型取别名,比如你叫张三,但是你戴眼镜,同学给你取个绰号,眼镜
C. enum 解析 枚举
D. union 解析联合体 共用体 看你喜欢啥名,反正都是它
第11题 在C程序中,main函数必须位于程序的最前面。 解析:它在哪里不影响,反正程序都要从它开始
第12题 语句scanf("%7.2f",&a);是合法的。解析:%f 输入不能规定位数,输出的时候才规定
第13题 格式字符%o用来以十六进制形式输出整数。解析 八进制%0 十六进制%x
第14题 C语言的输入、输出功能是由系统提供的输入、输出语句实现的。解析:C的输入输出是stdio.h提供的
第15题 逻辑表达式4>2&&1||5<3-!0的值为1。解析 运算符的级别由高向低依次为!->算术运算符->关系运算符->逻辑运算符->赋值运算符。
4>2&&1||5<3-!0 → 4>2&&1||5<3-1 → 1&&1||5<3-1 → 1&&1||5<2 → 1&&1||0 → 1||0 答案1
第16题 运算符的级别由高向低依次为!->算术运算符->逻辑运算符->关系运算符->赋值运算符。
解析 运算符的级别由高向低依次为!->算术运算符->关系运算符->逻辑运算符->赋值运算符。
第17题 do-while的循环体不能是复合语句。 解析 循环体里头用{}括起来的多条语句叫复合语句,它当然能执行
第18题 continue语句能够终止包含该语句的最内层循环。解析 简单理解break是跳出,continue跳回。break是指在执行循环时,跳出循环,后面的循环也不执行;而continue指的是跳出本次循环,但是下次循环还会继续执行,只影响一次循环。
第19题 数组整体不参加数据处理(即不参加各种运算),参加数据处理的只能是数组的元素。解析:数组作为1个整体,不能参加数据运算
第20题 如果不对静态数组赋初值,则计算机默认静态数组初始值为0。解析 :静态变量和全局变量如果没有显式初始化,系统都会自动初始化为0
第21题 C语言数组的下标从0开始。 解析 这个是一种规定,如果从1开始会存在很多不方便的地方,从0开始下标表示偏移量
第22题 函数strlen("ASDFG\n")的值是7。解析 strlen求的是字符串的长度,也就是从起始到\0的字符个数,不包括\0.
第23题 在程序中的第二个函数之后定义了某全局变量,则该程序的所有函数均可使用它。解析:这个全局变量的作用域从定义处开始的,所以第一个函数是不能使用的
第24题 在C语言中,不允许函数嵌套定义,但函数可以嵌套调用。
第25题 宏定义不是C语句,不必在行末加分号。
第26题 C语言中,_函数____是程序的基本组成部分。
第27题 已知i=5,写出语句i+=012;执行后整型变量i的十进制值是__15___。解析 012是八进制,转换成十进制就是10
第28题
int x=2;
z=++x+1;
则z的值为__4___。 解析++在前先加,就是3+1赋值给z
第29题在微机中,字符的比较就是对它们的__ ASCII___进行比较。
第30题 设x=4<4-!0,x的值为__0___。 解析:注意运算顺序,x=4<4-!0 → x=4<4-1 → x=4<3 4<3是假
第31题当a=3,b=2,c=1时,执行以下程序段后c=___2__。
if(a>b)
a=b; 执行到这里 a=2 b=2
if(b>c)
b=c; 执行到这里 b=1
else c=b; 不执行
c=a; c=2 a=2
解析 仔细审题,这里是三条语句,看我标的颜色。
第32题 当a=1,b=2,c=3时,执行以下程序段后a=__3___。
if(a>c)
b=a; 这个颜色条件为假不执行
a=c; 执行到这里 a=3 c=3
c=b; 执行到这里 c=2 b=2
解析 仔细审题,这里是三条语句,看我标的颜色。
第33题 若int x=6;则x+=x-=x*x表达式最后x的值是___-60__。
解析:答案-60 x+=x-=x*x x+=x-=36 x+=(6-36) x+=-30
第34题以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则下划线处应填写_____。
ch=getchar();
while(ch _____ 'Y')/*在括号中填写*/
ch=getchar();
解析:也就是说与Y相等的时候执行循环体,那么答案是==
第35题
C语言中,二维数组在内存中的存放方式为按_行____优先存放。
第36题 字符串的结束标志是__\0__。
第37题 函数调用语句func((e1,e2),(e3,e4,e5))中含有__2___个实参。
解析:在调用有参函数时,函数名后面括号中的参数称为“实际参数”,实参可以是常量、变量或表达式
第38题
预处理命令行都必须以__#___号开始。
第39题
将数组a的首地址赋给指针变量p的语句是_____。 解析 数组名就是首地址 答案 p=a;
第40题
设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是____16 _。
union stud
{
char num[6];
float s[4]; 4*4=16
double ave;
}
a,*p; 解析:C语言里char类型占1个字节,int类型占2个字节,float类型占4个字节,double类型占8个字节,注意共用体它表示几个变量共用同一个内存位置,
第41题
功能:在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出矩阵第一行与第三行元素之和,设计fun()函数求这个和。
int fun(int a[3][3])
{
int sum;
int i,j;
_____1_____
for(_____2_____)
for(_____3_____)
_____4_____
_____5_____
}
解析:
1、注意做这种填空题有个取巧的办法,就是只阅读题目和看你需要填空的函数,其他函数要么调用你要填空的这个,要么就是传参给它
2、很明显sum就是这个和,它只定义了,没有初始化,变量没有初始化,值是不确定的,所以这里第一句应该要初始化 sum=0;
3、i和j很明显是行和列的循环变量,看题目输出矩阵第一行与第三行元素之和,那么也就是说,行数只要1和3,列里面每个元素都要遍历。循环条件也就出来了,
行的i初始值是0,代表第一行,行数有3,所以判断条件小于3,改变循环的条件就是下一轮循环要去第3行,由于我们初始值用0开始的,所以这里0+2;也就是i+2.
i=0;i<3;i+=2
4、由于列是需要全部遍历出来的,lie的j初始值是0,代表第一列,列数有3,所以判断条件小于3,改变循环的条件j++; j=0;j<3;j++
5、把每个元素加起来 sum+=a[i][j];
6、最后一句肯定是加好的结果返回 return sum;
第42题
功能:求出二维数组外围元素之和,作为函数值返回。二维数组的值在主函数中赋予。
int fun(int a[M][N])
{
int s=0;
int i,j;
for(_____1_____)
_____2_____
for(_____3_____)
_____4_____
_____5_____
}
解析:
1、注意做这种填空题有个取巧的办法,就是只阅读题目和看你需要填空的函数,其他函数要么调用你要填空的这个,要么就是传参给它
2、i和j很明显是行和列的循环变量,外围之和就是每一行的第一个和最后一个数 以及 第一列和最后一列除了头和尾的数相加。
3、那么i就控制行,i=0;i<M;i++
s+=a[i][0]+a[i][N-1];
4、 那么j就控制列,注意循环条件去掉头和尾 j=1;j<N-1;j++
s+=a[0][j]+a[M-1][j];
5、最后返回 return s;
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复