第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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论