C语言比赛说明及3年真题Word文件下载.docx
- 文档编号:22207885
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:45
- 大小:54.86KB
C语言比赛说明及3年真题Word文件下载.docx
《C语言比赛说明及3年真题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言比赛说明及3年真题Word文件下载.docx(45页珍藏版)》请在冰豆网上搜索。
(八)编译预处理
1)宏定义:
不带参数的宏定义;
带参数的宏定义2)“文件包含”处理
(九)指针
1)指针与指针变量的概念,指针与地址运算符
2)变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。
通过指针引用以上各类型数据
3)用指针作函数参数4)返回指针值的指针函数5)指针数组,指向指针的指针,main函数的命令行参数
(十)结构体(即“结构”)与共用体(即“联合”)
1)结构体和共用体类型数据的定义方法和引用方法
2)用指针和结构体构成链表,单向链表的建立、输出、删除与插入
(十一)位运算
1)位运算符的含义及使用2)简单的位运算
(十二)文件操作
1)文件类型指针(FILE类型指针)2)文件的打开与关闭(fopen,fclose)
3)文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函数)
4)文件的定位(rewind,fseek函数)
复赛部分
复赛为编程操作题,主要考察参赛者使用C语言进行综合程序设计及解决实际问题的能力。
要求参赛者除了能够熟练掌握预赛所考察的知识点外,还应掌握下列内容:
1)熟悉WinTC等软件的集成环境,能够在该环境下进行程序设计、纠错及调试。
2)熟练掌握结构化程序设计的方法,具有良好的程序设计风格。
3)熟悉ANSIC常用库函数的使用方法。
4)掌握程序设计中常用的数据结构和算法。
5)熟练掌握C语言程序设计的基本技能,并能利用C语言解决实际问题。
决赛部分
决赛为编程操作题,在全面考察C语言应掌握的基本语法和基本编程技能的基础上,重点考察参赛者对问题的抽象、分解、转化能力和对C语言的理解和综合运用能力,考察参赛者在软件建模方面的基本能力和问题陈述能力。
四附注
参赛者在比赛准备期间,可以参考由人民邮电出版社出版的《C语言程序设计:
现代方法(第2版)》,本次比赛的参赛知识点,是以此书作为基础蓝本,同时对教材知识体系加以适当扩展进行考题设计的。
第六届预赛题目
单选题
[1]、C语言中运算对象必须是整型的运算符是()。
C
A、/ B、++ C、% D、!
=
[2]、假设所有变量均为整型,则执行运算x=(a=2,b=5,b++,a+b)后,x的值是()。
B
A、7 B、8 C、6 D、2
[3]、在下列字符序列中,属于C语言合法标识符的是()。
A、P12.a B、stud_100 C、$water.1 D、88sum
[4]、在下列语句选项中,只有一个在功能上与其他三个语句不等价(其中s1和s2表示某个C语句),这个不等价的语句是()。
D
A、if(a)
s1;
else
s2;
B、if(!
a)s2;
C、if(a!
=0)
D、if(a==0)
[5]、若二维数组定义为a[m][n],则在a[i][j]之前的元素个数为()。
A、j*m+I B、i*m+j C、i*m+j-1 D、j*m+i-1
[6]、以下程序的运行结果是()。
D
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);
}
A、8 B、10 C、11 D、15
[7]、设有定义:
#defineSTR"
12345"
;
则以下叙述正确的是()。
A、宏名STR代替的是数值常量12345 B、宏定义以分号结束,编译时会产生错误信息
C、宏名STR代替的是字符串"
D、宏名STR代替的是字符串常量"
[8]、下列叙述不正确的是()。
B
A、用typedef可以定义各种类型名,但不能用来定义变量 B、typedef和#define都是在预编译时处理的
C、用typedef只是将已存在的类型用一个新的标识符来代表 D、使用typedef有利于程序的通用和移植
[9]、若变量定义时未初始化,则其值不确定的是()。
C
A、静态全局变量 B、静态局部变量 C、局部变量 D、全局变量
[10]、以下程序关于sizeof()的运行结果是()。
chara[]="
movie"
b[10]="
%d%d\n"
sizeof(a),sizeof(b));
}C
A、55 B、66 C、610 D、其他输出
[11]、若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式应是()。
C A、"
ab+"
B、"
rb+"
C、"
wb+"
D、"
ab"
[12]、设charch,str[4],*strp;
则下列赋值语句正确的是()。
C
A、ch="
CBA"
B、str="
C、strp="
D、*strp="
[13]、有以下函数:
char*fun(char*p){returnp;
},该函数的返回值为()。
B
A、不确定值 B、参数p中存放的地址值 C、一个临时存储单元的地址值 D、形参p自身的地址值
[14]、若有定义:
constinti=10,j=20;
int*constpi=(int*)&
i;
,则下列操作正确的为()。
A
A、*pi=0;
B、pi=&
j;
C、i=10;
pi=&
D、j=*pi;
[15]、有如下定义:
structs1{
chara[3];
int
num;
}t={’a’,’b’,’x’,4},*p;
p=&
t;
则下列语句输出结果为x的是()。
A A、printf("
%c\n"
p->
t.a[2]);
B、printf("
(*p).a[2]);
C、printf("
a[3]);
D、printf("
(*p).t.a[2]);
[16]、以下程序将输出的字符是()。
#include"
stdio.h"
main(){
charc;
char(*p)[3];
chars[2][3]={’a’,’b’,’c’,’d’,’e’,’f’};
s[0];
c=*(p[1]+1);
%c"
c);
}C A、b B、d C、eD、f
[17]、以下关于枚举的程序,其运行结果是()。
main(){
enumweekday
{sun,mon,tue=5,wed,thu,fri,sat}a,b,c,d;
a=sun;
b=mon;
c=tue;
d=wed;
%d%d%d%d\n"
a,b,c,d);
}C
A、
0050 B、
1254 C、
0156 D、
0153
[18]、设有程序段chark;
while(k>
0)k++;
k);
则程序输出结果为()。
A、-127 B、256 C、-128 D、128
[19]、函数调用语句:
fseek(fp,-20L,2);
的含义是()。
A、将文件位置指针移到距离文件头20个字节处 B、将文件位置指针从当前位置向后移动20个字节
C、将文件位置指针从文件末尾处后退20个字节 D、将文件位置指针移到距离当前位置20个字节处
[20]、以下程序的输出结果为()。
inta=2;
intf(int*a){
return(*a)++;
ints=0;
{inta=5;
s+=f(&
a);
}
a,s);
}C
A、27 B、210 C、37 D、311
[21]、以下程序输出的字符序列是()。
main(){chara[]="
language"
*p;
p=a;
while(*p!
=’u’){printf("
*p-’u’+’U’);
p++;
}}C
A、LANGUAGE B、language C、LANG D、LANGuage
[22]、以下程序的输出结果是()。
#include<
stdio.h>
intmain(){
charstr[100]="
ABCDEFG"
*p=str;
inti;
for(i=0;
*p!
=’\0’;
p++,i++);
printf("
i);
return0;
}A
A、7 B、8 C、99 D、100
[23]、字符串"
a\x44\\\nbcd\102a"
的长度是()。
A、12 B、17 C、9 D、11
[24]、以下程序的输出结果是()。
main(){intn;
(n=6*4,n+6),n*2;
printf("
n=%d\n"
n);
}B
A、30 B、24 C、60 D、48
[25]、以下程序的输出结果是()。
main(){intw=4,x=3,y=2,z=1;
if(x>
y&
&
!
(z==w))printf("
(w<
x?
w:
z<
y?
z:
x));
elseprintf("
(w>
z>
}A A、1 B、2 C、3 D、4
[26]、以下程序的输出结果是()。
main()
{inta=1,b=0;
switch(a)
{case1:
switch(b){case0:
**0**"
);
break;
case1:
**1**"
case2:
**2**"
}
}B
A、**0** B、**0****2** C、**0****1****2** D、有语法错误
[27]、以下是求两个正整数的最大公约数的函数fun(),下划线处应填入的正确语句为()。
intfun(m,n)
intm,n;
{intr;
if(m<
n){r=m;
m=n;
n=r;
}if(n==0)return(m);
do{r=m%n;
if(r!
=0){m=n;
}while(______);
return(n);
}AA、r!
=0B、r==0C、n!
=0D、n==0
[28]、以下程序的输出结果是()。
main(){inta=0,j;
for(j=0;
j<
j++)
{switch(j)
{case0:
case3:
a+=2;
a+=3;
default:
a+=5;
}
a);
}D
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),下划线处应填入的正确语句为( )。
voidmain(){
intk,flag=1,n;
floats=0;
scanf("
%d"
&
n);
for(k=1;
k<
=n;
k++){
s=s+______;
flag=-flag;
sum=%f\n"
s);
}A
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;
2;
i++){
x++;
for(j=0;
3;
j++){
if(j%2)
continue;
}x++;
x=%d\n"
x);
}B 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++) p[i]=ch[i];
i++)for(j=0;
p[i][j]>
’\0’;
j+=2)s=10*s+p[i][j]-’0’;
s);
}C A、69825 B、63825 C、6385 D、693825
[32]、下列程序片段的输出结果是()。
strlen("
ATS\n0l2\2\\"
));
A、l1 B、10 C、9 D、8
[33]、在C程序中有如下语句:
char*func(intx,inty);
它是()。
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);
r);
}D
A、3 B、6 C、8 D、12
[35]、有如下程序,该程序的输出结果是()。
longf(intn){if(n>
2)
return(f(n-2)+f(n-3));
if(n==2)
return
(2);
return
(1);
}
main(){printf("
f(5));
}C A、2 B、3 C、4 D、5
[36]、在C语言中,函数的隐含存储类别是()。
C A、auto B、static C、extern D、无存储类别
[37]、以下程序的运行结果是()。
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;
,*p,*q);
}B A、运行后报错 B、611 C、612 D、55
[38]、以下选项中,能定义s为合法的结构体变量的是()。
A、typedefstructabc{doublea;
charb[10];
}s;
B、structabc
{doublea;
C、structABC
{doublea;
ABCs;
D、typedefABC
charb[10];
}ABCs;
[39]、以下程序运行后的输出结果是()。
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;
next=q;
next=r;
%d\n"
num+q->
next->
num);
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;
%d\n"
t);
A、0 B、1 C、4 D、5
[41]、若a是整型变量,表达式~(a^~a)等价于()。
C A、~a B、1 C、0 D、2
[42]、若以下程序所生成的可执行文件名为filel.exe,当输入命令行:
FILE1CHINABEIJINGSHANGHAI,执行该程序时,程序的输出结果是()。
main(intargc,char*argv[])
{while(argc-->
1)
{++argv;
%s
"
*argv);
}}A
A、CHINABEIJINGSHANGHAI B、FILE1
CHINA
BEIJING C、C
B
S D、F
C
[43]、下列选项中属于不正确的赋值语句的是()。
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的正确程序段是()。
A、scanf(“%d”,&
scanf(“%d”,&
b);
x=getchar();
y=getchar();
B、scanf(“%d%d
%c
%c”,&
a,&
b,&
x,&
y);
C、scanf(“%d%d
a,&
y,&
D、scanf(“%d%d%c%c%c%c”,&
[45]、在PC16位机环境下,以下程序的运行结果是()。
main(){unsignedinta;
intb=-2;
a=b;
printf(“%u”,a);
}BA、-2B、65534C、32768 D、-32768
[46]、语句printf(“%d\n”,strlen(“xyz\t\xab\3\\”));
的输出结果是()。
C A、9 B、11 C、7 D、8
[47]、语句:
printf(“%d”,!
0);
A A、1 B、0 C、有语法错误,不能执行 D、!
[48]、当a=2,b=3,c=4,d=5时,执行下面一段程序后x的值为()。
if(a<
b)
if(c>
d)x=1;
else
if(a>
c)
if(b<
d)x=2;
x=3;
x=4;
else
x=5;
A、2 B、3 C、4 D、5
[49]、若x是int型变量,且有下面的程序片段:
for(x=5;
x<
8;
x++)
printf((x/2)?
(“**%d”):
(“##%d”),x);
该程序片段的输出结果是()。
AA、**5**6**7 B、##5**6##7**8 C、**5##6**7 D、**5##6**7##8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 比赛 说明 年真题
![提示](https://static.bdocx.com/images/bang_tan.gif)