C语言等级考精彩试题目文档格式.docx
- 文档编号:19083066
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:66
- 大小:41.19KB
C语言等级考精彩试题目文档格式.docx
《C语言等级考精彩试题目文档格式.docx》由会员分享,可在线阅读,更多相关《C语言等级考精彩试题目文档格式.docx(66页珍藏版)》请在冰豆网上搜索。
(A)10(B)4(C)6(D)3
5.若变量均已正确定义并赋值,以下合法的C语言赋值语句是(A)。
根据C语言的定义
A)x=y==5;
B)x=n%2.0C)x+n=i;
D)x=5=4+1;
6.执行下面程序段,B的值应为(B)。
intx=35;
charz='
A'
;
intB;
B=((x&
15)&
(z<
'
a'
));
结果为真就为1
A)0B)1C)2D)3
7.设a、b都是int型变量,且a、b初始值分别为5和10,则表达式a=a+b++,b+a,b+1的值为(B)。
计算可得
A)11B)12C)15D)16
8.若以下选项中的变量已正确定义,则正确的赋值语句是(B)。
A)x1=26.8%3B)x3=0x12C)1+2=x2D)x4=1+2=3
9.表达式((356%100)&
(-1&
1))*10的值为(C)。
A)0B)1C)10D)560
10.C语言中运算对象必须是整形的运算符是(A)。
(A)%(B)/(C)=(D)<
=有定义可得
11.设intx=1,y=1;
表达式(!
x||--y)的值是(A)。
计算等于0
(A)0(B)1(C)2(D)-1
考点2:
循环结构
12.求取满足式12+22+32+……+n2≤1000的n,正确的语句是(A)。
(A)for(i=1,s=0;
(s=s+i*i)<
=1000;
n=i++);
(B)for(i=1,s=0;
n=++i);
(C)for(i=1,s=0;
(s=s+i*++i)<
n=i);
(D)for(i=1,s=0;
(s=s+i*i++)<
根据题中表达式找对应选项满足的循环结构
13.以下叙述中正确的是(D)。
(A)C语言中所有的循环语句都是先判断条件再执行循环体
(B)break语句只能中断循环
(C)continue语句可以结束所有的循环
(D)C语言中,任意表达式都可作为循环条件,只要能做出0和非0的判断即可
根据定义判断正误得到
考点3:
用户自定义数据类型
14.设有以下定义:
structnode
intdata;
structnode*next;
}*p;
则以下的语句中正确的是(B)。
(A)p=malloc(sizeof(structnode))
(B)p=(structnode*)malloc(sizeof(structnode))
(C)*p=(structnode*)malloc(4)
(D)p=(structnode)malloc(sizeof(structnode))
15.运行以下程序的输出结果为(A)。
#include<
stdio.h>
enumcolor{Black=1,Red,Blue,Green};
enumcolorc1,c2;
c1=Red;
c2=Blue;
%d,%d\n"
c1,c2);
函数fun的功能是:
求出无符号十进制数n中包含0的个数,及各位数字的最大值
(A)2,3(B)1,2(C)1,1(D)0,-1
16.根据下面的结构体类型及其结构数组的定义,值等于‘A’的表达式是(D)。
structseason
{
charname[10];
intday;
};
structseasons[4]={“Spring”,90,”Summer”,91,”Autumn”,92,”Winter”,92};
(A)s[3].name[0](B)s[3].name
(C)s[2].name(D)s[2].name[0]
按照程序算得
17.对于如下枚举类型定义,枚举量Pasica的值为(C)。
enumlanguage{Basic=3,Assembly=6,Ada=100,COBOL,Pasica}
A)4B)7C)102D)103
18.设有以下定义:
uniondata
intd1;
floatd2;
}demo;
则以下叙述中,错误的是(D)。
A)变量demo与成员变量d2所占的内存字节数相同
B)变量demo中各成员的地址相同
C)变量demo和各成员的地址相同
D)若给变量demo.d1赋89后,demo.d2中的值是89.0
赋值后其中的值应为90
19.设有如下说明
typedefstruct
intn;
charc;
doublex;
}STD;
则以下选项中,能正确定义结构体数组并赋初值的语句是(A)。
A)STDs[2]={{1,'
62}},{2,'
B'
75}};
B)STDs[2]={1,"
A"
62,2,"
"
75};
格式错位
C)structs[2]={{1,'
},{2,'
}};
D)structs[2]={{1,"
62.5},{2,"
B"
75.0}}
20.若有以下说明和定义
uniondt
inta;
charb;
doublec;
}data;
以下叙述中,错误的是(C)。
A)data的每个成员起始地址相同
B)变量data所占的内存字节数与成员C所占字节数相等
C)程序段:
data.a=5;
%f\n"
data,c);
输出结果为5.000000正确结果应为5
D)data可以作为函数的实参
21.设有如下枚举类型定义:
enumlanguage{Basic=3,Assemble,Ada=100,COBOL,Fortran};
则枚举量Fortran的值为(A)。
A)102B)103C)4D)7
考点4:
宏定义
22.以下程序的输出结果是(D)。
#definef(x)x*x
inta=6,b=2,c;
c=f(a+b)/f(a-b);
c);
(A)-2.5(B)-2(C)64(D)4
23.运行以下程序的输出结果为(B)。
#include"
#defineR1+2
#defineS(r)r*r
#defineV(r)S(r)*R
intr1=1+2;
V(r1));
通过程序要求算得
(A)27(B)11(C)9(D)7
24.运行以下的程序,输出结果为(D)。
#defineM3*2
#defineNM+2
#defineS(r)M*N*r/2
#inlcude<
inta=4;
S(a));
A)96B)144C)22D)40
25.以下程序的输出结果是(A)。
#defineMAX(x,y)(x)>
(y)?
(x):
(y)
inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
t);
},<
>
的优先级比赋值=的优先级高的
A)7B)6C)5D)没有答案
26.运行下面程序的输出结果为(D)。
#defineX5
#defineYX+1
#defineZY*X/2
intmain(void)
inta;
a=Y;
printf(“%d,%d\n”,Z,--a);
输出等于a+b*b+c-c+a=1+2*2+3-3+1=6
(A)15,6(B)15,5(C)12,5(D)7,5
考点5:
文件操作
27.C语言中fscanf函数的正确调用形式是(D)
(A)fscanf(文件指针,格式字符串,输出列表);
顺序错误
(B)fscanf(格式字符串,输出列表,文件指针);
(C)fscanf(格式字符串,文件指针,输入列表);
(D)fscanf(文件指针,格式字符串,输入列表);
考点6:
选择结构
28.设有定义:
inta=1,b=2,c=3;
,以下语句中执行效果与其它三个不同的是(C)。
(A)if(a>
b)c=a,a=b,b=c;
(B)if(a>
b){c=a,a=b,b=c;
}
(C)if(a>
b)c=a;
a=b;
b=c;
(D)if(a>
b){c=a;
C的结果为3
29.以下选项中与if(a==1)a=b;
elsea++;
语句功能不同的switch语句是(B)。
(A)switch(a)(B)switch(a==1)
{case1:
a=b;
break;
{case0:
default:
a++;
case1:
}}
(C)switch(a)(D)switch(a==1)
{default:
{case1:
case1:
case0:
}}
30.有如下程序
inta=2,b=-1,c=2;
if(a<
b)
if(b<
0)c=0;
else
c++;
printf("
该程序的输出结果是(C)。
inta=12,b=5,c=-3;
if(a&
gt;
b)//满足
if(b&
lt;
//不满足
elsec++//执行c=2
printf(“%d\n”,c);
输出c的值为2
(A)0(B)1(C)2(D)3
31.若有定义inta=1,b=3,c=5,d=4,x;
则执行以下程序段后x的值为(D)。
if(a<
if(c<
d)x=1;
elseif(a<
c)
if(b<
d)x=2;
elsex=3;
elsex=6;
elsex=7;
A)1B)3C)6D)2
32.if语句的一般形式可写为
if(expr)
语句1;
else
语句2;
其中,作为条件判断的表达式expr(A)。
(A)可以是任意表达式(B)只能是关系表达式或逻辑表达式
(C)不能使算术表达式(D)不能是赋值表达式
定义为任意表达式
考点7:
常量与变量
33.以下合法的字符常量是(C)。
(A)“a”(B)‘\72’(0~127且不能加’\’)(C)‘\0x12’(D)‘ab’
不能为双引号
考点8:
位运算
34.以下程序的结果是(B)。
unsignedinta=3,b=10;
a<
<
2|b>
>
1);
结果应为10+3所以等于13
(A)1(B)13(C)12(D)5
35.表达式15|127的值是(B)。
A)15B)127C)0D)1
考点9:
常用函数
36.以下程序的输出结果是(C)。
#include<
string.h>
charp[20]={'
'
b'
c'
d'
},q[]="
abc"
r[]="
abcde"
strcpy(p+strlen(q),r);
strcat(p,q);
%d%d\n"
sizeof(p),strlen(p));
(A)209(B)99(C)2011(D)1111
37.以下程序的输出结果是(C)。
charp[]={'
1'
2'
3'
123"
sizeof(p),sizeof(q));
指针存放的也就是内存地址,在32位系统下,内存地址是32位的,也就是4个字节。
所以32位系统下,指针始终占用4个字节。
所以结果为4
A)4,4B)3,3C)3,4D)4,3
38.以下程序段的运行结果是(C)。
chara[10]=”abcd”;
strcpy(a+2,”ABCD”);
printf(“%s\n”,a);
(A)ABCD(B)aABCD(C)abABCD(D)abcABCD
39.运行下面程序的输出结果为(C)。
chars[20]=”CLanguage.”;
printf(“%d,%d”,sizeof(s),strlen(s));
数组定义
(A)10,11(B)10,10(C)20,10(D)10,20
考点10:
数组
40.下列对C语言字符数组的描述中错误的是(C)。
(A)字符数组可以存放字符串
(B)字符数组的字符串可以整体输入、输出
(C)可以在程序中用赋值运算符“=”对字符数组进行整体赋值
(D)不可以用关系运算符对字符数组中的字符串进行比较
可以在程序中用赋值运算符“=”对字符数组进行整体赋值
41.以下不能对二维数组a进行正确初始化的语句是(A)。
(A)inta[2][3]={{1,2},{3,4},{5,6}};
(B)inta[][3]={{1,2},{0}};
(C)inta[2][3]={0};
(D)inta[][3]={1,2,3,4,5,6};
其中不能省略
42.若有以下声明和语句:
inta[]={1,2,3,4,5,6},*p;
p=a;
则下列说法正确的是(B)。
A)数组a中值为6的元素的地址可用表达式p+6表示
B)表达式p[4]和a[4]的值相等两表达式算出的结果都为同一个值
C)p++和a++都是正确的表达式
D)表达式&
p[5]的值和a[5]的值相等
43.若有说明:
intarr[5][5];
则对arr数组元素的正确引用是(D)。
A)arr[5][5]B)a[0][0]C)arr[1,3]D)arr[1+1][0]
arr[1+1][0]
44.以下能对二维数组a进行正确初始化的语句是(C)。
(A)inta[2][]={{1,0,1},{5,2,3}};
未能满足省略的条件
(B)inta[2][4]={{1,2,3},{4,5},{6}};
(C)inta[][3]={{1,2,3},{4,5,6}};
(D)inta[][]={{1,0,1},{},{1,1}};
考点11:
指针
45.以下程序的运行结果是(A)。
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&
a[5],*q=p+2;
*p+*q);
A)14B)15C)8D)9
输出1,6.因为本身数组名也是一种指针,其指针类型与数组类型相同。
46.若有说明:
inti,j=5,*p=&
i;
则与i=j;
等价的语句是(D)。
A)i=*p;
B)*p=*&
j;
C)i=&
D)i=**p;
47.若有以下定义和语句:
a[3];
p=p+2;
则printf("
*p);
的输出结果是(A)。
1处的索引号地址给指针q,1处的索引号处的值为2printf("
A)6B)5C)4D)3
48.设有以下语句
structst{intn;
structst*next;
};
staticstructsta[3]={5,&
a[1],7,&
a[2],9,’\0’,},*p;
p=&
则表达式的值为6的是(D)。
(A)p++->
n(B)p->
n++(C)(*p).n++(D)++p->
n
考点12:
变量的作用域和生存期
49.以下叙述中正确的是(B)。
(A)全局变量的作用域一定比局部变量的作用域范围大
(B)静态(static)变量的生存期贯穿于整个程序的运行期间
(C)函数的形参都属于全局变量
(D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
静态(static)变量的生存期贯穿于整个程序的运行期间
考点13:
函数的定义与调用
50.以下不正确的函数首部是(B)。
(A)f(inta)(B)fun(floata[5][])字符出错
(C)function(double*a)(D)fun(int*a[10])
题型二读程序回答问题
变量的作用域
1.有如下程序:
intk=1;
voidfun(intm)
m+=k;
k+=m;
{
chark='
D'
\n%d"
k-'
C'
);
/*①*/
inti=4;
fun(i);
\n%d,%d"
i,k);
/*② */
1处输出结果为(B)。
(A)2(B)1(C)3(D)A、B、C参考答案都不对
②处输出结果为(A)。
(A)4,1(B)5,6(C)4,6(D)A、B、C参考答案都不对
2.阅读下面的程序:
voidnum()
externintx,y;
inta=15,b=10;
x=a-b;
y=a+b;
intx,y;
inta=7,b=5;
num();
x,y);
(1)程序的输出结果是(B)。
运算结果为a+b
A)2,12B)5,25C)1,12D)输出不确定
(2)如果删除程序中的extern,则输出结果是(C)。
3.阅读下面的程序:
intm=10,n=20,t=30;
++m;
t+=++n;
intn=10,t;
t=n*2;
m+=t;
%d,%d,%d\n"
m,n,t);
(1)程序的运行结果是(D)。
依次为532141
A)31,11,22B)31,10,20C)53,21,42D)53,21,41
31,10,2031,21,5153,21,4253,21,41
(2)若将程序中的intn=10,t;
语句删除,则程序的运行结果是(A)。
31,10,2031,21,5153,21,4253,21,41理由同上
字符串处理
4.有如下程序
voidfun(char*s)
inti;
c=s[0];
for(i=1;
s[i]!
='
\0'
i++)
s[i-1]=s[i];
s[i-1]=c;
chars[10]="
abcdefg"
i<
=3;
fun(s);
puts(s);
}
函数fun的功能是(C)。
(A)左移一个字符,并将第一个字符放到字符串末尾
(B)右移一个字符,并将最后一个字符放到字符串开头
(C)删除第一个字符
(D)删除最后一个字符
。
右移一个字符,并将最后一个字符放到字符串开头
程序的运行结果是(D)
(A)bcdefga(B)defgabc(C)efgabcd(D)bcdefg
5.有下列程序
s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 等级 精彩 试题