二级C笔试试题及答案Word文件下载.docx
- 文档编号:7314842
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:15
- 大小:21.85KB
二级C笔试试题及答案Word文件下载.docx
《二级C笔试试题及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《二级C笔试试题及答案Word文件下载.docx(15页珍藏版)》请在冰点文库上搜索。
(11)以下叙述中正确的是
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其它函数之前
D)所有被调用的函数一定要在调用之前进行定义
(12)以下选项中合法的实型常数是
A)5E2.0B)E-3C).2E0D)1.3E
(13)以下选项中合法的用户标识符是
A)longB)_2TestC)3DmaxD)A.dat
(14)已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\101’是
A)字符AB)字符aC)字符eD)非法的常量
(15)以下非法的赋值语句是
A)n=(i=2,++i);
B)j++;
C)++(i+1);
D)x=j>
0;
(16)设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
A)6.500000B)6C)5.500000D)6.000000
(17)已知i、j、k为int型变量,若从键盘输入:
1,2,3<
回车>
,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是
A)scanf(“%2d%2d%2d”,&
i,&
j,&
k);
B)scanf(“%d%d%d”,&
C)scanf(“%d,%d,%d”,&
D)scanf(“i=%d,j=%d,k=%d”,&
(18)与数学式子对应的C语言表达式是
A)3*x^n(2*x-1)B)3*x**n(2*x-1)
C)3*pow(x,n)*(1/(2*x-1))D)3*pow(n,x)/(2*x-1)
(19)设有定义:
longx=-123456L;
,则以下能够正确输出变量x值的语句是
A)printf(“x=%d\n”,x);
B)printf(“x=%1d\n”,x);
C)printf(“x=%8dL\n”,x);
D)printf(“x=%LD\n”,x);
(20)若有以下程序:
main()
{intk=2,i=2,m;
m=(k+=i*=k);
printf(“%d,%d\n”,m,i);
}
执行后的输出结果是
A)8,6B)8,3C)6,4D)7,4
(21)已有定义:
intx=3,y=4,z=5;
,则表达式!
(x+y)+z-1&
&
y+z/2的值是
A)6B)0C)2D)1
(22)有一函数,,以下程序段中不能根据x值正确计算出y值的是
A)if(x>
0)y=1;
B)y=0;
elseif(x==0)y=0;
if(x>
elsey=-1;
elseif(x<
0)y=-1;
C)y=0;
D)if(x>
=0)
if(x>
=0);
0)y=1;
elsey=0;
elsey=-1;
(23)以下选项中,与k=n++完全等价的表达式是
A)k=n,n=n+1B)n=n+1,k=nC)k=++nD)k+=n+1
(24)以下程序的功能是:
按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
{intn,k;
floatscore,sum,ave;
sum=0.0;
for(n=1;
n<
=10;
n++)
{for(k=1;
k<
=4;
k++)
{scanf(“%f”,&
score);
sum+=score;
ave=sum/4.0;
printf(“NO%d:
%f\n”,n,ave);
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。
这条语句是
A)sum=0.0;
B)sum+=score;
C)ave=sun/4.0;
D)printf(“NO%d:
(25)有以下程序段
intn=0,p;
do{scanf(“%d”,&
p);
n++;
}while(p!
=12345&
3);
此处do—while循环的结束条件是
A)P的值不等于12345并且n的值小于3
B)P的值等于12345并且n的值大于等于3
C)P的值不等于12345或者n的值小于3
D)P的值等于12345或者n的值大于等于3
(26)有以下程序
{inta=15,b=21,m=0;
switch(a%3)
{case0:
m++;
break;
case1:
switch(b%2)
{default:
case0:
printf(“%d\n”,m);
程序运行后的输出结果是
A)1B)2C)3D)4
(27)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是
A)voidB)intC)floatD)double
(28)若有说明:
intn=2,*p=&
n,*q=p;
,则以下非法的赋值语句是
A)p=q;
B)*p=*q;
C)n=*q;
D)p=n;
(29)有以下程序
floatfun(intx,inty)
{return(x+y);
}
{inta=2,b=5,c=8;
printf(“%3.0f\n”,fun(int)fun(a+c,b),a-c));
A)编译出错B)9C)21D)9.0
(30)有以下程序
voidfun(char*c,intd)
{*c=*c+1;
d=d+1;
printf(“%c,%c,”,*c,d);
{chara=’A’,b=’a’;
fun(&
b,a);
printf(“%c,%c\n”,a,b);
A)B,a,B,aB)a,B,a,BC)A,b,A,bD)b,B,A,b
(31)以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序
voidsort(inta[],intn)
{inti,j,t;
for(i=0;
i<
N-1;
I++
for(j=i+1,j<
N;
J++)
if(a[i]}
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&
aa[3],5);
for(i=o;
10;
i++)print(“%d,”,aa[i]);
printf(‘\n”);
A)1,2,3,4,5,6,7,8,9,10B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,8,7.6.5.4.9,10D)1,2,10,9,8,7,6,5,4,3
(32)有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
{inti,j=0;
for(i=i;
3;
i++)j+=f(i);
printf(“%d\n”,j);
A)4B)3C)2D)1
(33)有以下程序
{chara[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘\0’};
inti,j;
i=sizeof(a);
j=strlen(a);
printf(“%d,%d\b”i,j);
A)9,9B)8,9C)1,8D)9,8(34)以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。
voidreverse(inta[],intn)
{inti,t;
i
{t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
{intb[10]={1,2,3,4,5,6,7,8,9,10};
inti,s=0;
reverse(b,8);
for(i=6;
i++)s+=b[i];
printf(“%d\n”,s);
A)22B)10C)34D)30
(35)有以下程序
{intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
inti,s=0
4;
i++)s+=aa[i][1];
A)11B)19C)13D)20
(36)有以下程序
#include
{char*p=“abcde\Ofghjik\0”;
printf(“%d\n”,strlen(p));
A)12B)15C)6D)5
(37)程序中头文件typel.h的内容是:
#defineN5
#defineM1N*3
程序如下:
#define“type1.h”
#defineM2N*2
{inti;
i=M1+M2;
printf(“%d\n”,i);
程序编译后运行的输出结果是:
A)10B)20C)25D)30
(38)有以下程序
{FILE*fp;
inti=20,j=30,k,n;
fp=fopen(“d1.dat”“w”);
fprintf(fp,“%d\n”,i);
fprintf(fp,“%d\n”j);
fclose(fp);
fp=fopen(“d1.dat”,“r”);
fp=fscanf(fp,“%d%d”,&
k,&
n);
printf(“%d%d\n”,k,n);
A)2030B)2050C)3050D)3020
(39)以下叙述中错误的是
A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B)在程序结束时,应当用fclose函数关闭已打开的文件
C)在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D)不可以用FILE定义指向二进制文件的文件指针
(40)有以下程序
main(intargc,char*argv[])
{inti,len=0;
for(i=1;
iprintf(“%d\n”,len);
程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是:
ex1abcdefg10<
则运行的结果是:
A)22B)17C)12D)9
(41)有以下程序
intfa(intx)
{returnx*x;
intfb(intx)
{returnx*x*x;
intf(int(*f1)(),int(*f2)(),intx)
{returnf2(x)-f1(x);
i=f(fa,fb,2);
A)-4B)1C)4D)8
(42)有以下程序
inta=3;
{ints=0;
{inta=5;
s+=a++;
s+=a++;
A)8B)10C)7D)11
(43)有以下程序
voidss(char*s,chart)
{while(*s)
{if(*s==t)*s=t-‘a’+’A’;
s++;
{charstr1[100]=“abcddfefdbd”,c=’d’;
ss(str1,c);
printf(“%s\n”,str1);
A)ABCDDEFEDBDB)abcDDfefDbD
C)abcAAfefAbAD)Abcddfefdbd
(44)有以下程序
structSTU
{charnum[10];
floatscore[3];
};
{structstus[3]={{“20021”,90,95,85},
{“20022”,95,80,75},
{“20023”,100,95,90}},*p=s;
inti;
floatsum=0;
3,i++)
sum=sum+p->
score[i];
printf(“%6.2f\n”,sum);
A)260.00B)270.00C)280.00D)285.00
(45)设有如下定义:
strucksk
{inta;
floatb;
}data;
int*p;
若要使P指向data中的a域,正确的赋值语句是
A)p=&
a;
B)p=data.a;
C)p=&
data.a;
D)*p=data.a;
(46)有以下程序
structNODE
{intnum;
structNODE*next;
{structNODE*p,*Q,*R;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->
num=10;
q->
num=20;
r->
num=30;
next=q;
q->
next=r;
printf(“%d\n”,p->
num+q->
next->
num);
A)10B)20C)30D)40
(47)若有以下说明和定义
typedefint*INTEGER;
INTEGERp,*q;
以下叙述正确的是
A)P是int型变量B)p是基类型为int的指针变量
C)q是基类型为int的指针变量D)程序中可用INTEGER代替int类型名
(48)有以下程序
{unsignedchara,b,c;
a=0x3;
b=a|0x8;
c=b<
<
1;
printf(“%d%d\n”,b,c);
A)–1112B)–6–13C)1224D)1122
(49)有以下程序
{char*p,*q;
p=(char*)malloc(sizeof(char)*20);
q=p;
scanf(“%s%s”,p,q);
printf(“%s%s\n”,p,q);
}
若从键盘输入:
abcdef<
,则输出结果是:
A)defdefB)abcdefC)abcdD)dd
(50)以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。
voidf(charp[][10],intn)
{chart[20];
I++)
for(j=i+1;
j<
J++
if(strcmp(p[i],p[j])<
0)
{strcpy(t,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],t);
{charp[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”};
f(p,5);
printf(“%d\n”,strlen(p[0]));
A)6B)4C)5D)3
二、填空题(每空2分,共40分)
请将答案分别写在答题卡中序号为【1】至【20】的横线上,答在试卷上不得分。
1、计算机软件分为系统软件和应用软件,操作系统属于[1]。
2、在DOS环境下,代表键盘和显示器的设备文件名为[2]。
3、支持Internet基本服务的协议是[3]。
4、从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为[4]。
5、某微型机的运算速度为2MIPS,则该微型机每秒执行[5]条指令。
6、设有定义:
intn,*k=&
n;
以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。
scanf(“%d,”[6]);
printf(“%d\n”,[7]。
);
7、以下程序运行后的输出结果是[8]。
{intx=10,y=20,t=0;
if(x==y)t=x;
x=y;
y=t;
printf(“%d,%d\n”,x,y);
8、以下程序运行后的输出结果是[9]。
{intx=15;
while(x>
10&
x<
50)
{x++;
if(x/3){x++;
elsecontinue;
printf(“%d\n”,x);
9、有以下程序:
{charc;
while((c=getchar())!
=’?
’)putchar(--c);
程序运行时,如果从键盘输入:
Y?
N?
,则输出结果为[10]。
10、以下程序运行后的输出结果是[11]。
voidfun(intx,inty)
{x=x+y;
y=x-y;
x=x-y;
printf(“%d,%d,”,x,y);
{intx=2,y=3;
fun(x,y);
printf(“%d,%d\n”,x,y);
11、以下函数的功能是计算s=1+++……+,请填空。
doublefun(intn)
{doubles=0.0,fac=1.0;
inti;
for(i=1,i<
=n;
i++)
{fac=fac[12];
s=s+fac;
returns;
12fun函数的功能是:
首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。
请填空。
#defineN100
intfun(int(*a)[N])
{introw,col,max,min;
for(row=0;
row<
ROW++)
{for(max=a[row][0],col=1;
col<
COL++)
if([13])max=a[row][col];
if(row==0)min=max;
elseif([14])min=max;
returnmin;
13、函数sstrcmp()的功能是对两个字符串进行比较。
当s所指字符串和t所指字符串相等时,返回值为0;
当s所指字符串大于t所指字符串时,返回值大于0;
当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。
intsstrcmp(char*s,char*t)
{while(*s&
*t&
*s==[15])
{s++;
t++;
return[16];
14、下面程序的运行结果是[17]。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
{inti1,i2;
i1=1000/s(N);
i2=1000/f(N);
printf(“%d%d\n”,i1,i2);
15、下面程序的运行结果是:
[18]。
voidswap(int*a,int*b)
{int*t;
t=a;
a=b;
b=t;
{intx=3,y=5,*p=&
x,*q=&
y;
swap(p,q);
printf(“%d%d\n”,*p,*q);
16、下面程序的运行结果是:
[19]。
typedefunionstudent
{charname[10];
longsno;
charsex;
floatscore[4];
}STU;
{STUa[5];
printf(“%d\n”,sizeof(a));
17、若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:
fp=fopen([20]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 笔试 试题 答案