首页 > 全部 > 二级C语言 > 二级C语言选择题专项强化真题试卷45

二级C语言选择题专项强化真题试卷45

本单篇文档共9181字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 真题试卷 2224人下载
价格: 1.10 原价:¥7.00
收藏

二级C语言选择题专项强化真题试卷45

选择题

1.有以下程序:

#include<stdio.h>

int f(int x,int y)

{return((y—x)*x);}

main()

{

int a=3,b=4,c=5,d;

d=f(f(a,b),f(a,c));

printf(\\(B)

A. 10

B. 9

C. 8

D. 7

解析:主函数中语句d=f(f(a,b),f(a,c));用函数的返回值做参数,所以首先计算f(a,b),代入a=3,b=4,得3,然后计算f(a,c),代入a=3,c=5得6,所以d=f(f(a,b),f(a,c));,即为计算d=f(3,6),值为9。

2.有以下程序:

#include<stdio.h>

main()

{

int a1,a2;char c1,c2;

scanf(\\(A)

A. 2a_34b<CR>

B. 12_a_34_b<CR>

C. 2_a 34_b<CR>

D. 2_a34_b<CR>

解析:该题可通过程序运行的输出结果判断输入情况。因为seanf()函数输入的形式是只有c1和a2之间有空格,没有别的符号,故运行程序后,输入的时候a1和c1之间、a2和c2之间没有空格,在输入c1后,应先输入一个空格,再输入a2,所以A选项符合题意。

3.以下选项中,能用作数据常量的是( )。(D)

A. 0115

B. 0118

C. 1—5e1.5

D. 115L

解析:C语言中实型常量有两种表示:小数形式和指数形式。在指数形式中,字母e(或E)之前必须要有数字,且e或E后面的指数必须为整数,故C项错;八进制整数常量以数字0开始,而不是0,故A项错。而在八进制数中的有效数字为0~7,故B项错。

4.有以下程序:

#include<stdio.h>

main()

{

int x,y,z;

x=y=1;

z=x++;y++;++y;

printf(\\(C)

A. 2 3 2

B. 2 3 3

C. 2 3 1

D. 2 2 1

解析:考查逗号表达式。逗号表达式的计算过程是分别计算所有表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。x=y=1;将x、y初始化为1,逗号表达式z=x++,y++,++y;中先计算z=x++,得到x=2,z=1,计算y++,得y=2,再计算++y,得y=3。所以最终结果为x=2,y=3,z=1,答案选C。

5.有以下程序:

#include<stdio.h>

main()

{

int y=9;

for(;y>0;y——)

if(y%3==0)

printf(\\(D)

A. 875421

B. 963

C. 741

D. 852

解析:该程序的运行过程是y从9开始自减,每次判定y是否能被3整除,若是,则输出——y后的值,能被3整除的y值分别为9、6、3,所以答案选D。

6.以下关于宏的叙述错误的是( )。(C)

A. 宏替换不具有计算功能

B. 宏是一种预处理指令

C. 宏名必须用大写字母构成

D. 宏替换不占用运行时间

解析:宏名习惯采用大写字母,以便与一般变量区别,但是并没有规定一定要用大写字母。

7.有以下程序:

#include<stdio.h>

int fun(int n)

{int a;

if(n==1)return 1;

a=n+fun(n—1);

return a;

}

main()

{printf(\\(D)

A. 9

B. 14

C. 10

D. 15

解析:考查函数的递归调用。只需要一步一步递归调用函数即可,执行fun(5)=5+(4+(3+(2+fun(1))))=15,故D选项正确。

8.以下选项中可用做C程序合法实数的是( )。(B)

A. 3.0e0.2

B. .1e0

C. E9

D. 9.12E

解析:A选项中e后面的指数必须为整数,所以错误。C语言规定,E之前必须要有数字,所以C选项错误。E后面必须要有数字,且必须为整数,所以D选项错误。

9.以下选项中,与n=i++完全等价的表达式是( )。(A)

A. n=i,i=i+1

B. n+=i+1

C. i=i+1,n=i

D. n=++i

解析:运算符“++”放在变量后面时,表示变量先参与其他操作,再完成加1操作,故表达式n=i++的运算顺序是先将i赋值给n,再将i+1赋值给i,因此答案为A选项。

10.有以下程序:

#include

void fun(int a[],int n,int flag)

{ int i=0,j,t;

for(i=0;i<n一1;i++)

f10T(j=i+1;j<n;j++)

if(flag)

{if(a[i]<a[j])

{t:a[i];a[i]=a[j];a[j]=t;}

}

else

{if(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

}

}

main()

{ int c[10]={7,9,10,8,3,5,1,6,2,4},i;

fun(c,4,1);

fun(c+4,6,0);

for(i=0;i<10;i++)printf(\\(C)

A. 7,8,9,10,6,5,4,3,2,1,

B. 10,9,8,7,6,5,4,3,2,1,

C. 10,9,8,7,1,2,3,4,5,6,

D. 1,2,3,4,5,6,7,8,9,10,

解析:fun()函数的作用是定义了冒泡法排序,flag控制升序(0)或者降序(1),n为参与排序的元素个数,a为数组的起始地址。因此,fun(a,4,1)函数即将数组的前4个数据降序排序,fun(a+4,6,0)函数是对数组的第4项后的6个元素进行升序排序。故结果为10,9,8,7,l,2,3,4,5,6。答案为C选项。

11.以下不能用于实型数据的运算符是( )。(A)

A. %

B. /

本文档预览:3600字符,共9181字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
二级C语言选择题专项强化真题试卷45

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号