C语言清考试题Word文件下载.docx
- 文档编号:16790338
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:14
- 大小:23.20KB
C语言清考试题Word文件下载.docx
《C语言清考试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言清考试题Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
二、填空题(20×
2=40分)
(1)
(2)
(3)(4)
(5)(6)
(7)(8)
(9)(10)
(11)(12)
(13)(14)
(15)(16)
(17)(18)
(19)(20)
三、编程题(10×
2=20分)
1、一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。
编程序找出1000以内的所有“完数”。
2、编写一个程序,将字符数组s2中的全部字符拷贝盗字符数组s1中,不用strcpy函数。
拷贝时,'
\0'
也要拷贝过去,'
后的字符不拷贝。
一、选择题(40×
1分=40分)
1.以下叙述中正确的是
(1)。
A.C程序中注释部分可以出现在程序中任意合适的地方
B.花括号"
{"
和"
}"
只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
2.在以下各组标识符中,均可以用作变量名的一组是
(2)。
A.a01,IntB.table_1,a*.1C.0_a,W12D.for,point
3.若有说明:
inta[10];
则对数组元素的正确引用是(3)。
A.a[10]B.a[3.5]C.a(5)D.a[10-10]
4.已知ch是字符型变量,下面正确的赋值语句是(4)。
A.ch=’123’;
B.ch=’\xff’;
C.ch=’\08’;
D.ch=”\”;
5.C语言中用于结构化程序设计的3种基本结构是(5)。
A.顺序结构、选择结构、循环结构B.if,switch,break
C.for,while,do-whileD.if,for,continue
6.有以下程序,执行后输出结果是(6)。
main()
{intn=9;
while(n>
6){n--;
printf("
%d"
n);
}
}
A.987B.876C.8765D.9876
7.若有以下定义,则对a数组元素地址的正确引用是(7)。
inta[5],*p=a;
A.&
a[0]B.*a+1C.&
a+1D.p+5
8.若有以下调用语句,则不正确的fun函数的首部是(8)。
{…
inta[50],n;
…
fun(n,&
a[9]);
A.voidfun(intm,intx[])B.voidfun(ints,inth[50])
C.voidfun(intp,int*s)D.voidfun(intn,inta)
9.以下选项中非法的表达式是(9)。
A.0<
=x<
100B。
i=j==0C。
(char)(65+3)D。
x+1=x+1
10.若有声明“charss[8]="
blue"
;
”,则sizeof(ss)的值是(10)。
A.8B.4C.3D.1
11.以下程序运行后的输出结果是(11)。
A.22B.72C.75D.62
{chara[7]="
a0\0a0\0"
inti,j;
i=sizeof(a);
j=strlen(a);
printf("
%d%d"
i,j);
12.下面关于循环语句for、while、do_while的叙述中,正确的是(12)。
A.三种循环语句的循环体都必须放入一对花括号中
B.三种循环语句中都可以缺省循环终止条件表达式
C.三种循环语句的循环体都至少被无条件地执行一次
D.三种循环语句都可能出现无穷循环
13.有以下程序
main()
{ints=0,a=1,n;
scanf("
&
n);
do
{s+=1;
a=a-2;
}
while(a!
=n);
%d\n"
s);
若要使程序的输出值为2,则应该从键盘给n输入的值是(13)。
A.-1B.-3C.-5D.0
14.在下列C语言源程序的错误中,通常不能在编译时发现的是(14)。
A.括号不匹配B.非法标识符
C.数组元素下标值越界D.程序结构不完整
15.若有声明“longa,b;
”且变量a和b都需要通过键盘输入获得初值,则下列语句中正确的是(15)。
A.scanf("
%ld%ld,&
a,&
b"
);
B.scanf("
%d%d"
a,b);
C.scanf("
b);
D.scanf("
%ld%ld"
16.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;
b<
=c;
b++)s=s+1;
则与上述程序段功能等价的赋值语句是(16)。
A.s=a+b;
B.s=a+c;
C.s=s+c;
D.s=b+c;
17.若在一个C语言源程序中“e1”和“e3”是表达式,“s;
”是语句,则下列选项中与语句“for(e1;
;
e3)s;
”功能等同的语句是(17)。
A.e1;
while(10)s;
e3;
B.e1;
while(10){s;
C.e1;
while(10){e3;
s;
}D.while(10){e1;
18.若有声明“inta[3][4],*p=a[0],(*q)[4]=a;
”,则下列叙述中错误的是(18)。
A.a[2][3]与q[2][3]等价B.a[2][3]与p[2][3]等价
C.a[2][3]与*(p+11)等价D.a[2][3]与p=p+11,*p等价
19.若有如下程序,则程序运行后的输出结果是(19)。
main()
{inta[3][4]={1,2,3,4,5,6,7,8,9};
%d%d%d\n"
a[0][1],a[1][2],a[2][3]);
A.270B.480C.160D.不定值
20.以下叙述中错误的是(20)。
A.局部变量的定义可以在函数体和复合语句的内部
B.全局变量的定义可以在函数以外的任何部位
C.同一程序内局部变量和全局变量不允许同名
D.函数的形参属于局部变量
21.设有以下说明语句,则下面的叙述不正确的是(21)。
structstu
{inta;
floatb;
}stutype;
A.struct是结构体类型的关键字B.structstu是用户定义的结构体类型
C.stutype是用户定义的结构体类型名D.a和b都是结构体成员名
22.下列关于C语言数据文件的叙述中正确的是(22)。
A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
23.若有下面的程序段,则下列叙述正确的是(23)。
chars[]="
china"
char*p;
p=s;
A.s和p完全相同B.数组s中的内容和指针变量p中的内容相等
C.s数组长度和p所指向的字符串长度相等D.*p与s[0]相等
24.若有结构类型定义“typedefstructtest{intx,y[2];
}TEST;
”,则以下声明中正确的是(24)。
A.structtestx;
B.structx;
C.testx;
D.structTESTx;
25.设有声明intvalue=‘5’;
则执行下列选项的赋值语句后,value的值不等于5的是(25)。
A.value=value-‘0’;
B.value=value-0x30;
C.value=value-49;
D.value=value-‘\060’;
26.若有枚举类型定义“enumlist1{x1,x2,x3,x4=6,x5,x6};
”,则枚举常量x2和x6代表的值分别是(26)。
A.1,6B.1,8C.2,6D.2,8
27.若有声明“floatf=123.45678;
”,则执行语句“printf("
%.3f"
f);
”后,输出结果是(27)。
A.1.23e+02B.123.457C.123.456780D.1.234e+02
28.若有声明“intx[10]={0,1,2,3,4,5,6,7,8,9},*p;
”,则值不为4的表达式是(28)。
A.p=x,*(p+4)B.p=x+4,*p++
C.p=x+3,*(p++)D.p=x+3,*++p
29.若有如下定义:
ints[3];
则下面表达式中不能代表数组元素s[1]的地址的是(29)。
A.&
s[1]B.&
s[0]+1C.s+1D.s++
30.已知A盘根目录下有文本文件“data.txt”且程序中已有声明“FILE*fp;
”,若程序需要先从“data.txt”文件中读出数据,修改后再写入“data.txt”文件中,则调用fopen函数的正确形式是(30)。
A.fp=fopen("
a:
\\data.txt"
"
rw"
B.B.fp=fopen("
w+"
C.fp=fopen("
r+"
D.fp=fopen("
r"
31.有以下程序,程序运行后的输出结果是(31)。
{intk=4,n=0;
for(;
n<
k;
)
{n++;
if(n%3!
=0)continue;
k--;
%d,%d\n"
k,n);
A.1,1B.2,2C.3,3D.4,4
32.已知有结构定义和变量声明如下:
以下选项中错误的是(32)。
structstudent
{charname[20];
intscore;
structstudent*h;
}stu,*p;
int*q;
A.p=&
stu;
B.q=&
stu.score;
C.scanf("
%s%d"
stu);
D.stu.h=p;
33.若变量已正确定义并赋值,以下符合C语言语法的表达式是(33)。
A.a:
=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
34.有以下函数定义:
voidfun(intn,doublex){……}
变量定义:
intm;
doubley;
若变量都已正确赋值,则对函数fun的正确调用语句是(34)。
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(y,m);
D.voidfun(m,y);
35.设int在内存中占两个字节,以下程序的运行结果是(35)。
#include"
stdio.h"
{structdate
{intyear,month,day;
}today;
sizeof(structdate));
A.6B.8C.10D.12
36.以下关于C语言语句的叙述中,正确的是(36)。
A.所有语句都包含关键字
B.所有语句都包含表达式
C.所有语句都可以出现在源程序中的任何位置
D.所有语句都以分号结束
37.设有变量声明“charc;
”,执行“for(;
c=(getchar()!
=‘\n’);
)printf(“%c”,c);
”时,从键盘上输入“ABCDEFG”回车后,输出结构是(37)。
A.ABCDEFGB.AABBCCDDEEFFGG
C.非字母数字字符D.语句不能执行
38.以下能将字符串:
youareluck!
正确读入的语句组是(38)。
A)chars[80];
%s"
s);
B)char*s;
C)chars[80];
gets(s);
D)char*s;
39.若以下对fun函数的调用是正确的,则fun函数的形参个数为(39)。
x=fun(fun(a,b,c),(a+b,a+c),a+b+c);
A.3B.4C.5D.6
40.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(40)。
A.函数调用可以作为独立的语句存在B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参
二、填空题(每空2分,共50分)
1.已知有函数定义“intfun(){return(3,4);
}”,则调用fun后的函数返回值是
(1)。
2.若已有定义“enumTP{A,B,C};
”,则执行语句“printf("
A+1);
”后输出结果是
(2)。
3.若有声明“chars[10]="
hello"
”,执行“puts(s+2);
”后的输出结果是(3)。
4.若有声明“doublex=10;
”,则计算x绝对值的库函数调用形式是(4)。
5.在以下程序的main函数中,语句“fun(x,10);
”内的实参x表示数组x的(5)。
voidfun(inta[10],intn)
{inti;
for(i=0;
i<
n;
i++)a[i]++;
{intx[10]={0};
fun(x,10);
6.以下程序的输出结果是(6)。
{inta=0;
a+=(a=8);
a);
7.以下程序运行时输出结果是(7)。
#include<
stdio.h>
voidfunc(intb)
a=b;
b=10;
voidmain()
{inta=10,b=20;
func(b);
%d,%d"
8.以下程序运行时输出结果的第一行是(8),第二行是(9)。
#include<
intf1()
{staticinti=0,f=1;
returnf*=++i;
intf2()
{inti=0,f=1;
voidmain()
{printf("
f1()+f1());
f2()+f2());
9.下列程序的输出结果是(10)。
{charb[]="
Helloyou"
b[5]=0;
printf("
%s\n"
b);
10.以下程序运行时输出结果的第一行是(11),第三行是(12)。
voidmain()
{inti,j,a[3][3];
for(i=0;
3;
i++)
for(j=0;
j<
j++)
if(i<
j)
a[i][j]=1;
else
a[i][j]=i-j+1;
{for(j=0;
%4d"
a[i][j]);
\n"
11.以下程序运行时输出结果是(13)。
voidsort(inta[],intn)
{inti,j,p;
intt;
for(i=1;
n-1;
i+=2)
{p=i;
for(j=i+2;
j+=2)
if(a[j]>
a[p])
p=j;
if(p!
=i)
{t=a[i];
a[i]=a[p];
a[p]=t;
{ints[]={8,1,4,3},n=4,k;
sort(s,n);
for(k=0;
k<
k++)
s[k]);
12.以下程序运行时输出结果的第一行是(14),第二行是(15)。
structs
{intx,*y;
}*p;
intd[5]={10,20,30,40,50};
structsa[5]={100,&
d[0],200,&
d[1],300,&
d[2],400,&
d[3],500,&
d[4]};
{p=a;
%5d"
p->
x++);
%5d\n"
x);
*p->
y);
*++p->
13.完善程序以达到将指针变量r所指向的单链表结点插入到指针变量p所指向的单链表结点之后的功能。
r->
next=(16);
p->
next=(17);
14.试完善程序以达到输出数组各元素的值的功能。
{inta[10]={1,2,3,4,5,6,7,8,9,0},i;
for(i=(18);
(19);
i++)(20);
二、填空题(25×
2=50分)
(1)4
(2)1
(3)llo(4)fabs(x)
(5)首地址(6)16
(7)10,20(8)3
(9)2(10)hello
(11)111(12)321
(13)8341(14)100101
(15)1020(16)p->
next
(17)r(18)0
(19)10(20)printf(“%d”,a[i])
三、编程题(10分)
{intm,s,i;
for(m=2;
m<
1000;
m++)
{s=0;
m;
i++)if((m%I)==0)s=s+i;
if(s==m){printf(“%d是一个“完数”,它的因子是”,m);
i++)if(m%i==0)printf(“%d”,i);
printf(“\n”);
后的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 考试题