c语言试题2.docx
- 文档编号:5786486
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:15
- 大小:21.82KB
c语言试题2.docx
《c语言试题2.docx》由会员分享,可在线阅读,更多相关《c语言试题2.docx(15页珍藏版)》请在冰豆网上搜索。
c语言试题2
全国计算机等级考试二级笔试卷
基础知识和C语言程序设计
(考试时间120分钟,满分100分)
1995年9月
一、选择题(
(1)-(40)每小题1分,(41)-(50)每小题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)第一台电子数字计算机ENIAC诞生于
A)1927年B)1936年C)1946年D)1951年
(2)用FORTRAN语言编制的源程序要变为目标程序,必须经过
A)汇编B)解释C)编辑D)编译
(3)计算机软件一般包括系统软件和
A)字处理软件B)应用软件C)管理软件D)科学计算机软件
(4)计算机内使用的数是
A)二进制数B)八进制数C)十进制数D)十六进制数
(21)请选出可用作C语言用户标识符的一组标识符
A)voidB)a3_b3C)ForD)2a
define_123-abcDO
WORDIFCasesizeof
(22)设inta=12,则执行完语句a+=a-=a*a后,a的值是
A)552B)264C)144D)-264
(23)C语言程序的基本单位是
A)程序行B)语句C)函数D)字符
(24)请选出合法的C语言赋值语句
A)a=b=58B)i++;C)a=58,b=58D)k=int(a+b);
(25)执行下面程序片段的结果是
intx=23;
do
{printf("%2d",x--);}
while(!
x);
A)打印出321B)打印出23C)不打印任何内容D)陷入死循环
(26)请选出以下语句的输出结果
printf("%d\n",strlen("\t\"\065\xff\n"));
A)5B)14C)8D)输出项不合法,无正常输出
(27)设有如下的函数
ggg(x)
floatx;
{printf("\n%d",x*x);}
则函数的类型
A)与参数x的类型相同B)是voidC)是intD)无法确定
(28)设有如下枚举类型定义:
enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};
枚举量Fortran的值为
A)4B)7C)102D)103
(29)若有以下说明和语句,请选出哪个是对c数组元素的正确引用
intc[4][5],(*cp)[5];
cp=c;
A)cp+1B)*(cp+3)C)*(cp+1)+3D)*(*cp+2)
(30)标准函数fgets(s,n,f)的功能是
A)从文件f中读取长度为n的字符串存入指针s所指的内存
B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C)从文件f中读取n个字符串存入指针s所指的内存
D)从文件f中读取长度为n-1的字符串存入指针s所指的内存
(31)设有如下一段程序:
int*var,ab;
ab=100
var=&ab;
ab=*var+10;
执行上面的程序后,ab的值为
A)120B)110C)100D)90
(32)以下程序段给数组所有的元素输入数据,请选择正确答案填入。
#include<>
main()
{inta[10],i=0;
while(i<10)scanf("%d",________);
┇
}
A)a+(i++)B)&a[i+1]C)a+iD)&a[++i]
(33)设有如下的程序段:
charstr[]="Hello";
char*ptr;
ptr=str;
执行上面的程序段后,*(ptr+5)的值为
A)'o'B)'\0'C)不确定的值D)'o'的地址
(34)在宏定义#definePI中,用宏名PI代替一个
A)单精度数B)双精度数C)常量D)字符串
(35)字符(char)型数据在微机内存中的存储形式是
A)反码B)补码C)EBCDIC码D)ASCII码
(36)执行下面的程序段
intx=35;
charz='A';
intb;
B=((x&15)&&(z<'a'));
后,B的值为
A)0B)1C)2D)3
(37)C语言规定,程序中各函数之间
A)既允许直接递归调用也允许间接递归调用
B)不允许直接递归调用也不允许间接递归调用
C)允许直接递归调用不允许间接递归调用
D)不允许直接递归调用允许间接递归调用
(38)假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式
的表达式是
A)1/a*b*cB)1/(a*b*c)C)1/a/b/(float)cD)a/b/c
(39)若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是
A)pb=&xB)pb=x;C)*pb=&x;D)*pb=*x
(40)设有
staticcharstr[]="Beijing";
则执行
printf("%d\n",strlen(strcpy(str,"China")));
后的输出结果为
A)5B)7C)12D)14
(41)设有如下程序:
#include<>
main()
{int**k,*j,i=100;
j=&i;k=&j;
printf("%d\n",**k);
}
上面程序的输出结果是
A)运行错误B)100C)i的地址D)j的地址
(42)设a=5,b=6,c=7,d=8,m=2,n=2,执行
(m=a>b)&&(n=c>d)
后n的值为
A)1B)2C)3D)4
(43)下面函数的功能是
sss(s,t)
char*s,*t;
{while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}
A)求字符串的长度B)比较两个字符串的大小
C)将字符串s复制到字符串t中D)将字符串s接续到字符串t中
(44)请选出以下程序的输出结果
#include<>
sub(x,y,z)
intx,y,*z;
{*z=y-x;}
main()
{inta,b,c;
sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}
A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-7
(45)下面程序的输出结果是
#include<>
main()
{inti=2,p;
p=f(i,i+1);
printf("%d",p);
}
intf(a,b)
inta,b;
{intc;
if(a>b)c=1;
else
if(a==b)c=0;
elsec=-1;
return(c);
}
A)-1B)0C)1D)2
(46)请选出以下程序段的输出结果
#include<>
#defineMIN(x,y)(x)<(y)(x):
(y)
main()
{inti,j,k;
i=10;j=15;
k=10*MIN(i,j);
printf("%d\n",k);
}
A)15B)100C)10D)150
(47)请选出以下程序段的输出结果
#include<>
main()
{charsl[10],s2[10],s3[10],s4[10];
scanf("%s%s",s1,s2);gets(s3);gets(s4);
puts(s1);puts(s2);puts(s3);puts(s4);
}
输入数据如下:
(此处
aaaabbbb
ccccdddd
A)aaaaB)aaaaC)aaaaD)aaaabbbb
bbbbbbbbbbbbcccc
ccccccccdddddddd
ccccddddddddeeee
(48)请选出以下程序的输出结果
#include<>
fun(s,n1,n2)
int*s,n1,n2;
{inti,j,t;
i=n1;j=n2;
while(i {t=*(s+i);*(s+i)=*(s+j);*(s+j)=t; i++;j--; } } main() {inta[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a; fun(p,0,3);fun(p,4,9);fun(p,0,9); for(i=0;i<10;i++)printf("%d",*(a+i)); printf("\n"); } A)0987654321B)4321098765 C)5678901234D)0987651234 (49)请选出以下程序的输出结果 #include<> main() {inta[]={1,2,3,4},i; intx=0; for(i=0;i<4;i++) {sub(a,x);printf("%d",x);} printf("\n"); } sub(s,y) int*s,y; {staticintt=3; y=s[t];t--; } A)1234B)4321C)0000D)4444 (50)下面程序的输出结果为 structst {intx; int*y; }*p; intdt[4]={10,20,30,40}; structstaa[4]={50,&dt[0],60,&dt[1], 70,&dt[2],80,&dt[3]}; main() {p=aa; printf("%d\n",++p->x); printf("%d\n",(++p)->x); printf("%d\n",++(*p->y)); } A)10B)50C)51D)60 20606070 20212131 二、填空题(每空2分,共40分) 请将每空的正确答案写在答题卡上【1】-【20】序号的横线上,答在试卷上不得分。 (1)十进制数123用八位二进制表示为【1】。 (6)设有如下程序段: inti=0,sum=1; do {sum+=i++;} while(i<6); printf("%d\n",sum); 上述程序段的输出结果是【6】。 (7)阅读下列程序: #include<> main() {inti,j,row,column,m; staticintarray[3][3]={{100,200,300}, {28,72,-30}, {-850,2,6} }; m=array[0][0]; for(i=0;i<3;i++) for(j=0;j<3;i++) if(array[i][j] {m=array[i][j];row=i;column=j;} printf("%d,%d,%d\n",m,row,column); } 上述程序的输出结果是【7】。 (8)设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句: a*=16+(b++)-(++c); 后,a的值是【8】。 (9)下面程序的输出结果是【9】。 #include<> main() {inta=3,b=2,c=1; c-=++b; b*=a+c; {intb=5,c=12; c/=b*2; a-=c; printf('%d,%d,%d,",a,b,c); a+=--c; } printf('%d,%d,%d,",a,b,c); } (10)设有如下程序: #include<> main(argc,argv) intargc;char*argv[]; {while(--argc>0)printf("%s",argv[argc]); printf("\n"); } 假定上述程序经编译和连接后生成可执行文件,如果在DOS提示符下键入PROGABCDEFGHIJKL (11)阅读下列程序: #include<> #defineMAX_COUNT4 voidfun(); main() {intcount; for(count=1;count<=MAX_COUNT;count++)fun(); } voidfun() {staticinti; i+=2;printf("%d",i); } 上述程序的输出结果是【11】。 (12)设有下列程序: #include<> #include<> main() {inti; charstr[10],temp[10]; gets(temp); for(i=0;i<4;i++) {gets(str); if(strcmp(temp,str)<0)strcpy(temp,str); } printf("%s\n",temp); } 上述程序运行后,如果从键盘上输入(在此 C++ BASIC QuickC Ada Pascal 则程序的输出结果是【12】。 (13)设有如下程序: #include<> main(argc,argv) intargc;char*argv[]; {FILE*fp; voidfc(); inti=1; while(--argc>0) if((fp=fopen(argv[i++],"r"))==NULL) {printf("Cannotopenfile! \n"); exit (1); } else {fc(fp);fclose(fp);} } voidfc(ifp) FILE*ifp; {charc; while((c=getc(ifp))! ='#')putchar(c-32); } 上述程序经编译、连接后生成可执行文件名为。 假定磁盘上有三个 文本文件,其文件名和内容分别为: 文件名内容 aaaaa# bbbbb# ccccc# 如果在DOS下键入 cpyabc 则程序输出【13】。 (14)若输入3个整数3,2,1,则下面程序的输出结果是【14】。 #include<> voidsub(n,uu) intn,uu[]; {intt; t=uu[n--];t+=3*uu[n]; n=n++; if(t>=10) {uu[n++]=t/10;uu[n]=t%10;} elseuu[n]=t; } main() {inti,n,aa[10]={0,0,0,0,0,0} scanf("%d%d%d",&n,&aa[0],&aa[1]); for(i=1;i for(i=0;i<=n;i++)printf("%d",aa[i]); printf("\n"); } (15)若有以下定义: doublew[10]; 则w数组元素下标的上限为【15】,下限为【16】。 (16)以下程序统计从终端输入的字符中每个大写字母的个数。 用#号作为输入结束标志,请填空。 #include<> #include<> main() {intnum[26],i;charc; for(i=0;i<26;i++)num[i]=0; while(【17】! ='#')/*统计从终端输入的大写字母个数*/ if(isupper(c))num[c-65]+=1; for(i=0;i<26;i++)/*输出大写字母和该字母的个数*/ if(num[i])printf("%c: %d\n,i【18】,num[i]); } (17)下面的程序调用getone函数开辟一个动态存储单元,调用assone函数把数据输入此动态存储单元,调用outone函数输出此动态存储单元中的数据。 请填空。 #include<> getone(s) int**s; {*s=(int*)malloc(sizeof(int));} assone(a) int*a; {scanf("%d",【19】);} outone(b) int*b; printf("%d\n",【20】);} main() {int*p; getone(&p); assone(p); outone(p); } 『完』 C试卷参考答案 一`选择题( (1)~(40)题每题1分,(41)~(50)题每题2分,共60分) (1)C (2)D (3)B (4)A (5)D (6)D (7)B (8)C (9)C (10)A (11)B (12)C (13)A (14)C (15)C (16)C (17)D (18)C (19)A (20)D (21)B (22)D (23)C (24)B (25)B (26)A (27)C (28)C (29)D (30)B (31)B (32)A (33)B (34)D (35)D (36)B (37)A (38)D (39)A (40)A (41)B (42)B (43)B (44)B (45)A (46)A (47)A (48)C (49)C (50)C 二`填空题(每空2分,共40分) (1)01111011 (2)32 (3)内存或存储器或存储 (4)允许用小写字母 (5)字段或字段名 (6)16 (7)-850,2,0若遗漏逗号扣1分 (8)28 (9)2,5,1,2,3,-2若遗漏逗号扣1分 (10)IJKLEFGHABCD若在字符间嵌入空格扣1分若在字符间嵌入空格扣1分 (12)QuickC若大写字母写成小写字母,或小写字母写成大写字母扣1分 (13)AAAABBBBCCCC若在字符间嵌入空格扣1分若用小写字母扣1分 (14)2721或2721 (15)9 (16)0 (17)(c=getchar())注意,外层括号不得遗漏 (18)+65或+'A' (19)a或&*a (20)*b精心搜集整理,只为你的需要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题