2021年甘肃省武威市全国计算机等级考试C语言程序设计真题(含答案)
学校:________ 班级:________ 姓名:________ 考号:________
一、2.填空题(10题)
1. 若有如下定义,则该数组的第一维大小为【 】。
int b[][4]={1,2,3,4,5,6,7,8,9}
2. 下面程序的运行结果是【 】。
#include<stdio.h>
#define SIZE 12
main()
{ char s[SIZE];int i;for(i=0;i<SIZE;i++) s[i]='A'+i+321;
sub(s,7,SIZE-1);
for(i=0;i<SIZE;i++) printf("%c",s[i]);
全国计算机等级考试成绩
printf("\n");}
sub(char *a,int t1,int t2)
{ char ch;
while(t1<t1)
{ ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;} }
3. 有以下程序:
void f(int y,int *x)
{ y=y+*x; *x=*x+y; }
main()
{ int x=2,y=4;
f(y,&x);
printf("%d %d\n",x,y);
}
执行后输出结果是上【 】。
4. 以下程序运行后的输出结果是【 】。
# define S(x) 4*x*x+1
main()
{ int i=6,j=8;
printf("%d\n",S(i+j));
}
5. 下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【 】。
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n,p+9);
}
6. 若要使指针p指向一个double类型的动态存储单元,请填空。
p=【 】malloc(sizeof(double));
7. 下列程序的输出结果是______。
#include<stdio.h>
main()
{ int a=2,b=-1,C=2;
if(a<B) 
if(b<O)c=0;
else c++;
printf("%d\n",C) ;
}
8. 若已知a=10,b=20,则表达式! a<b的值为【 】。
9. 以下程序段的输出结果是【 】。
int i=9;
printf("%o\n",i);
10. x和y都是double型变量,x的初值为4.0,y的初值为2.0,则表达式pow(y, fabs(x))的值为______。
二、单选题(10题)
11.下列选项中非法的字符常量是( )。
A.'\t' B.'\039' C.',' D.'\n ' 
12. 下列可用于C语言用户标识符的一组是
A.void,define,WORD 
B.a3_b3,_123,Car 
C.For,-abc,IF Case 
D.2a,DO,sizeof 
13.以下叙述中错误的是()。
A.向量属于线性结构 B.二叉链表是二叉树的存储结构 C.栈和队列是线性表 D.循环链表是循环队列的链式存储结构 
14. 下面程序的输出结果是______。 #inc1ude<stdio.h> main() { char*p[]={"BOOL","OPK","H","SP"}; int i; for(i=3;i>=0;i-,i-) prinf("%c",*p[i]); print("\n") }
A.SO B.SP C.SPOPK D.SHOB 
15.
16.指针可以用来表示数组元素,若已知语句:inta[3][7];则下列表示中正确的是()。
A.*(a+1)[5] B.*(*a+3) C.*(*(a+1)) D.*(&a[0][0]+2) 
17.
18.以下合法的字符型常量是
A.
B.
C.
D.
19.下列代码的复杂度是多少?如果多于1个答案正确,选择最小的那个。()