第六届全国信息技术应用水平大赛试题C语言程序设计全.docx
- 文档编号:4946459
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:27
- 大小:33.03KB
第六届全国信息技术应用水平大赛试题C语言程序设计全.docx
《第六届全国信息技术应用水平大赛试题C语言程序设计全.docx》由会员分享,可在线阅读,更多相关《第六届全国信息技术应用水平大赛试题C语言程序设计全.docx(27页珍藏版)》请在冰豆网上搜索。
第六届全国信息技术应用水平大赛试题C语言程序设计全
第六届全国信息技术应用水平大赛试题
C语言程序设计
预赛
单选题
[1]、C语言中运算对象必须是整型的运算符是()。
【答 案】C
【分 数】1分
【选 项】
A、/
B、++
C、%
D、!
=
[2]、假设所有变量均为整型,则执行运算x=(a=2,b=5,b++,a+b)后,x的值是()。
【答 案】B
【分 数】1分
【选 项】
A、7
B、8
C、6
D、2
[3]、在下列字符序列中,属于C语言合法标识符的是()。
【答 案】B
【分 数】1分
【选 项】
A、P12.a
B、stud_100
C、$water.1
D、88sum
[4]、在下列语句选项中,只有一个在功能上与其他三个语句不等价(其中s1和s2表示某个C语句),这个不等价的语句是()。
【答 案】D
【分 数】1分
【选 项】
A、if(a) s1;else s2;
B、if(!
a)s2;else s1;
C、if(a!
=0) s1;else s2;
D、if(a==0) s1;else s2;
[5]、若二维数组定义为a[m][n],则在a[i][j]之前的元素个数为()。
【答 案】B
【分 数】1分
【选 项】
A、j*m+i
B、i*m+j
C、i*m+j-1
D、j*m+i-1
[6]、以下程序的运行结果是()。
voidfun(int*n)
{
staticintm=2;
*n*=m-1;m+=2;
}
voidmain()
{
staticintm=1;
inti;
for(i=1;i<4;i++)
fun(&m);
printf("%d\n",m);
}
【答 案】D
【分 数】1分
【选 项】
A、8
B、10
C、11
D、15
[7]、设有定义:
#defineSTR"12345";,则以下叙述正确的是()。
【答 案】C
【分 数】1分
【选 项】
A、宏名STR代替的是数值常量12345
B、宏定义以分号结束,编译时会产生错误信息
C、宏名STR代替的是字符串"12345"
D、宏名STR代替的是字符串常量"12345"
[8]、下列叙述不正确的是()。
【答 案】B
【分 数】1分
【选 项】
A、用typedef可以定义各种类型名,但不能用来定义变量
B、typedef和#define都是在预编译时处理的
C、用typedef只是将已存在的类型用一个新的标识符来代表
D、使用typedef有利于程序的通用和移植
[9]、若变量定义时未初始化,则其值不确定的是()。
【答 案】C
【分 数】1分
【选 项】
A、静态全局变量
B、静态局部变量
C、局部变量
D、全局变量
[10]、以下程序关于sizeof()的运行结果是()。
voidmain()
{
chara[]="movie",b[10]="movie";
printf("%d%d\n",sizeof(a),sizeof(b));
}
【答 案】C
【分 数】1分
【选 项】
A、55
B、66
C、610
D、其他输出
[11]、若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式应是()。
【答 案】C
【分 数】1分
【选 项】
A、"ab+"
B、"rb+"
C、"wb+"
D、"ab"
[12]、设charch,str[4],*strp;,则下列赋值语句正确的是()。
【答 案】C
【分 数】1分
【选 项】
A、ch="CBA";
B、str="CBA";
C、strp="CBA";
D、*strp="CBA";
[13]、有以下函数:
char*fun(char*p){returnp;},该函数的返回值为()。
【答 案】B
【分 数】1分
【选 项】
A、不确定值
B、参数p中存放的地址值
C、一个临时存储单元的地址值
D、形参p自身的地址值
[14]、若有定义:
constinti=10,j=20;int*constpi=(int*)&i;,则下列操作正确的为()。
【答 案】A
【分 数】1分
【选 项】
A、*pi=0;
B、pi=&j;
C、i=10;pi=&j;
D、j=*pi;
[15]、有如下定义:
structs1
{
chara[3];
int num;
}t={’a’,’b’,’x’,4},*p;
p=&t;
则下列语句输出结果为x的是()。
【答 案】A
【分 数】1分
【选 项】
A、printf("%c\n",p->t.a[2]);
B、printf("%c\n",(*p).a[2]);
C、printf("%c\n",p->a[3]);
D、printf("%c\n",(*p).t.a[2]);
[16]、以下程序将输出的字符是()。
#include"stdio.h"
main()
{
charc;
char(*p)[3];
chars[2][3]={’a’,’b’,’c’,’d’,’e’,’f’};
p=&s[0];
c=*(p[1]+1);
printf("%c",c);
}
【答 案】C
【分 数】1分
【选 项】
A、b
B、d
C、e
D、f
[17]、以下关于枚举的程序,其运行结果是()。
#include"stdio.h"
main()
{
enumweekday
{sun,mon,tue=5,wed,thu,fri,sat}a,b,c,d;
a=sun;
b=mon;
c=tue;
d=wed;
printf("%d%d%d%d\n",a,b,c,d);
}
【答 案】C
【分 数】1分
【选 项】
A、 0050
B、 1254
C、 0156
D、 0153
[18]、设有程序段chark;while(k>0)k++;printf("%d\n",k);则程序输出结果为()。
【答 案】C
【分 数】1分
【选 项】
A、-127
B、256
C、-128
D、128
[19]、函数调用语句:
fseek(fp,-20L,2);的含义是()。
【答 案】C
【分 数】1分
【选 项】
A、将文件位置指针移到距离文件头20个字节处
B、将文件位置指针从当前位置向后移动20个字节
C、将文件位置指针从文件末尾处后退20个字节
D、将文件位置指针移到距离当前位置20个字节处
[20]、以下程序的输出结果为()。
inta=2;
intf(int*a)
{
return(*a)++;
}
voidmain()
{
ints=0;
{inta=5;
s+=f(&a);
}
s+=f(&a);
printf("%d%d\n",a,s);
}
【答 案】C
【分 数】1分
【选 项】
A、27
B、210
C、37
D、311
[21]、以下程序输出的字符序列是()。
#include"stdio.h"
main(){
chara[]="language",*p;
p=a;
while(*p!
=’u’){printf("%c",*p-’u’+’U’);p++;}
}
【答 案】C
【分 数】1分
【选 项】
A、LANGUAGE
B、language
C、LANG
D、LANGuage
[22]、以下程序的输出结果是()。
#include
intmain()
{
charstr[100]="ABCDEFG",*p=str;
inti;
for(i=0;*p!
=’\0’;p++,i++);
printf("%d\n",i);
return0;
}
【答 案】A
【分 数】1分
【选 项】
A、7
B、8
C、99
D、100
[23]、字符串"a\x44\\\nbcd\102a"的长度是()。
【答 案】C
【分 数】1分
【选 项】
A、12
B、17
C、9
D、11
[24]、以下程序的输出结果是( )。
main()
{intn;
(n=6*4,n+6),n*2;
printf("n=%d\n",n);
}
【答 案】B
【分 数】1分
【选 项】
A、30
B、24
C、60
D、48
[25]、以下程序的输出结果是()。
main()
{intw=4,x=3,y=2,z=1;
if(x>y&&!
(z==w))printf("%d\n",(w w: z z: x)); elseprintf("%d\n",(w>x? w: z>y? z: x)); } 【答 案】A 【分 数】1分 【选 项】 A、1 B、2 C、3 D、4 [26]、以下程序的输出结果是()。 main() {inta=1,b=0; switch(a) {case1: switch(b) {case0: printf("**0**");break; case1: printf("**1**");break; } case2: printf("**2**");break; } } 【答 案】B 【分 数】1分 【选 项】 A、**0** B、**0****2** C、**0****1****2** D、有语法错误 [27]、以下是求两个正整数的最大公约数的函数fun(),下划线处应填入的正确语句为()。 intfun(m,n) intm,n; {intr; if(m if(n==0)return(m); do{r=m%n; if(r! =0){m=n;n=r;} }while(______); return(n); } 【答 案】A 【分 数】1分 【选 项】 A、r! =0 B、r==0 C、n! =0 D、n==0 [28]、以下程序的输出结果是()。 main() {inta=0,j; for(j=0;j<4;j++) {switch(j) {case0: case3: a+=2; case1: case2: a+=3; default: a+=5; } } printf("%d\n",a); } 【答 案】D 【分 数】1分 【选 项】 A、20 B、13 C、10 D、36 [29]、以下程序功能为输入1个正整数n,计算并输出s的前n项的和: s=1/2-2/3+3/4-4/5+……(-1) n/(n+1),下划线处应填入的正确语句为( )。 #include"stdio.h" voidmain() { intk,flag=1,n; floats=0; scanf("%d",&n); for(k=1;k<=n;k++){ s=s+______; flag=-flag; } printf("sum=%f\n",s); } 【答 案】A 【分 数】1分 【选 项】 A、1.0*k/(k+1)*flag B、flag*n/(n+1) C、-k/(k+1) D、1.0*k/(k+1) [30]、以下程序的输出结果是()。 main() { inti,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<3;j++) { if(j%2) continue; x++;} x++; } printf("x=%d\n",x);} 【答 案】B 【分 数】1分 【选 项】 A、x=4 B、x=8 C、x=6 D、x=12 [31]、以下程序的输出结果是()。 main() {charch[2][5]={"6937","8254"},*p[2]; inti,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>’\0’;j+=2) s=10*s+p[i][j]-’0’; printf("%d\n",s); } 【答 案】C 【分 数】1分 【选 项】 A、69825 B、63825 C、6385 D、693825 [32]、下列程序片段的输出结果是()。 printf("%d\n",strlen("ATS\n0l2\2\\")); 【答 案】C 【分 数】1分 【选 项】 A、l1 B、10 C、9 D、8 [33]、在C程序中有如下语句: char*func(intx,inty);它是()。 【答 案】C 【分 数】1分 【选 项】 A、对函数func的定义 B、对函数func的调用 C、对函数func的原型说明 D、不合法的 [34]、下列程序运行后的输出结果是()。 fun(inta,intb) {if(a>b)return(a); elsereturn(b); } main() {intx=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf("%d\n",r); } 【答 案】D 【分 数】1分 【选 项】 A、3 B、6 C、8 D、12 [35]、有如下程序,该程序的输出结果是()。 longf(intn) {if(n>2) return(f(n-2)+f(n-3)); else if(n==2) return (2); else return (1);} main() {printf("%d\n",f(5));} 【答 案】C 【分 数】1分 【选 项】 A、2 B、3 C、4 D、5 [36]、在C语言中,函数的隐含存储类别是()。 【答 案】C 【分 数】1分 【选 项】 A、auto B、static C、extern D、无存储类别 [37]、以下程序的运行结果是()。 #include"stdio.h" main() { inta[]={1,2,3,4,5,6,7,8,9,10,11,12}; int*p=a+5,*q=NULL; q=p+5; printf("%d%d\n",*p,*q); } 【答 案】B 【分 数】1分 【选 项】 A、运行后报错 B、611 C、612 D、55 [38]、以下选项中,能定义s为合法的结构体变量的是()。 【答 案】B 【分 数】1分 【选 项】 A、typedefstructabc {doublea; charb[10]; }s; B、structabc {doublea; charb[10]; }s; C、structABC {doublea; charb[10]; } ABCs; D、typedefABC {doublea; charb[10]; } ABCs; [39]、以下程序运行后的输出结果是()。 #include structNODE {intnum;structNODE*next;}; main() { 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; p->next=q;q->next=r; printf("%d\n",p->num+q->next->num); } 【答 案】D 【分 数】1分 【选 项】 A、10 B、20 C、30 D、40 [40]、下列程序的输出结果是()。 structstudent {inta,b,c;}; main() {structstudentstu[2]={{2,3,4},{5,6,7}};intt; t=stu[0].a+stu[1].b%stu[0].c; printf("%d\n",t);} 【答 案】C 【分 数】1分 【选 项】 A、0 B、1 C、4 D、5 [41]、若a是整型变量,表达式~(a^~a)等价于()。 【答 案】C 【分 数】1分 【选 项】 A、~a B、1 C、0 D、2 [42]、若以下程序所生成的可执行文件名为filel.exe,当输入命令行: FILE1CHINABEIJINGSHANGHAI,执行该程序时,程序的输出结果是()。 main(intargc,char*argv[]) {while(argc-->1) {++argv;printf("%s ",*argv);} } 【答 案】A 【分 数】1分 【选 项】 A、CHINABEIJINGSHANGHAI B、FILE1 CHINA BEIJING C、C B S D、F C B [43]、下列选项中属于不正确的赋值语句的是()。 【答 案】D 【分 数】1分 【选 项】 A、t--; B、k=i==j; C、t1=t2=t3=3; D、t1=1,t2=2; [44]、若有定义: inta,b;charx,y;并有以下输入数据: 12 13AaBb(回车) 则能给a赋整数12,给b赋整数13,给x赋字符a,给y赋字符b的正确程序段是()。 【答 案】D 【分 数】1分 【选 项】 A、scanf(“%d”,&a); scanf(“%d”,&b); x=getchar();y=getchar(); B、scanf(“%d%d %c %c”,&a,&b,&x,&y); C、scanf(“%d%d %c %c”,&a,&b,&x,&x,&y,&y); D、scanf(“%d%d%c%c%c%c”,&a,&b,&x,&x,&y,&y); [45]、在PC16位机环境下,以下程序的运行结果是()。 main() {unsignedinta; intb=-2; a=b; printf(“%u”,a);} 【答 案】B 【分 数】1分 【选 项】 A、-2 B、65534 C、32768 D、-32768 [46]、语句printf(“%d\n”,strlen(“xyz\t\xab\3\\”));的输出结果是()。 【答 案】C 【分 数】1分 【选 项】 A、9 B、11 C、7 D、8 [47]、语句: printf(“%d”,! 0);的输出结果是()。 【答 案】A 【分 数】1分 【选 项】 A、1 B、0 C、有语法错误,不能执行 D、! 0 [48]、当a=2,b=3,c=4,d=5时,执行下面一段程序后x的值为()。 if(a if(c>d)x=1; else if(a>c) if(b else x=3; else x=4; else x=5; 【答 案】C 【分 数】1分 【选 项】 A、2 B、3 C、4 D、5 [49]、若x是int型变量,且有下面的程序片段: for(x=5;x<8;x++) printf((x/2)? (“**%d”): (“##%d”),x); 该程序片段的输出结果是()。 【答 案】A 【分 数】1分 【选 项】 A、**5**6**7 B、##5**6##7**8 C、**5##6**7 D、**5##6**7##8 [50]、有以下程序段: inta=0,b; do{scanf(“%d”,&a);b++;}while(a! =10||b<3); 此处do-while循环的结束条件是()。 【答 案】B 【分 数】1分 【选 项】 A、a的值等于10并且b的值大于3 B、a的值等于10并且b的值大于等于3 C、a的值不等于10或者b的值小于3 D、a的值不等于10并且b的值大于等于3 [51]、在下述程序中,if(i>j)语句共执行的次数是()。 main() {inti=0,j=14,k=2,s=0; for(;;) {i+=k; if(i>j) {printf(“%d”,s); break; } s+=i; } } 【答 案】C 【分 数】1分 【选 项】 A、6 B、9 C、7 D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 全国 信息技术 应用 水平 大赛 试题 语言程序设计