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

2 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论