c2=c1+32;
printf(“&c, &c\\n”,c1,c2); }
程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能)【8】 。 (9)以下程序运行后的输出结果是【9】 #include
{int k=1,s=0; do{ if{((k&2)!=0)continue; s+=k;k++; }while(k)10); printf(“s=&d/n”,s); }
(10)下列程序运行时,若输入labced12df<回车> 输出结果为【10】 #include
{char a =0,ch;
while((ch=getchar())!=’\\n’)
{if(a&2!=0&&(ch>’a’&&ch<=’z’)) ch=ch-‘a’+’A’; a++;putchar(ch); }
printf(“\\n”); }
(11)有以下程序,程序执行后,输出结果是【11】 #include
{int a[10]={10,9,8,7,6,5,4,3,2,1},i; for(i=2;i>=0;i--) fun{&a};
for(i=0;i<10;i++) printf(“&d”,a); printf(“\\n”); }
(12)请将以下程序中的函数声明语句补充完整 #include
{int x,y,(*p)(); p=max;
printf(“&d\\n”,&x,&y); }
Int max(int a,int b) {return (a>b/a:b);}
(13)以下程序用来判断指定文件是否能正常打开,请填空 #include
if (((fp=fopen(“test.txt”,”r”))==【13】)) printf(“未能打开文件!\\n”); else
printf(“文件打开成功!\\n”); (14)下列程序的运行结果为【14】 #include
{int a;char b[10];double c;}; void f (struct A *t); main()
{struct A a=(1001,”ZhangDa”,1098,0); f(&a);printf(“&d,&s,&6,if\\n”,a.a,a.b,a.c); }
void f(struct A *t)
{strcpy(t->b,”ChangRong”); }
(15)以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据,请填空 #include
16
struct node
{int data; struct node *next;}; typedef struct node NODETYPE; main()
{NODETYPE a,b,c,*h,*p;
a. data=10;b.data=20;c.data=30;h=&a; b. next=&b;b.next=&c;c.next=’\\0’; p=h;
while(p){printf(“&d”,p->data);【15】;} }
一、选择题
1~10 DACDC ABABC 11~20 CBDDA CDBCD 21~30 CDABA BACBC 31~40 ADBCC DBDAC 二、选择题
1.19 2.白盒 3.顺序结构 4.数据库管理系统 5.菱形 6.4 7.“x/y=%d” 8.不能 9.s=0 10.1AbCeDf2Df 11.7777654321 12.max(int a,int b) 13.NULL 14.1001 ChangRong 1008.0 15.p++或p=p->next
2009年9月全国计算机等级考试二级笔试试卷 C语言程序设计
(考试时间90分钟,满分100分) 一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分) (1)下列数据结构中,属于非线性结构的是 A)循环队列 B) 带链队列 C) 二叉树 D)带链栈
(2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树
(3)对于循环队列,下列叙述中正确的是 A)队头指针是固定不变的 B)队头指针一定大于队尾指针 C)队头指针一定小于队尾指针
D)队头指针可以大于队尾指针,也可以小于队尾指针 (4)算法的空间复杂度是指
A)算法在执行过程中所需要的计算机存储空间 B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的临时工作单元数 (5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合
(6)下列选项中不属于结构化程序设计原则的是 A) 可封装 D) 自顶向下 C) 模块化 D) 逐步求精
(7)软件详细设计产生的图如下:
17
该图是 A) N-S图 B) PAD图
C) 程序流程图 D) E-R图
(8)数据库管理系统是 A)操作系统的一部分
B) 在操作系统支持下的系统软件 C) 一种编译系统 D) 一种操作系统
(9)在E-R图中,用来表示实体联系的图形是 A) 椭圆图 B) 矩形 C) 菱形 D) 三角形
(10)有三个关系R,S和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并
(11)以下叙述中正确的是
A)程序设计的任务就是编写程序代码并上机调试 B)程序设计的任务就是确定所用数据结构 C)程序设计的任务就是确定所用算法 D)以上三种说法都不完整
(12)以下选项中,能用作用户标识符的是 A)void B)8_8 C)_0_
D)unsigned
(13)阅读以下程序 #include main()
{ int case; float printF;
printf(“请输入2个数:”);
scanf(“%d %f”,&case,&pjrintF); printf(“%d %f\\n”,case,printF); }
该程序编译时产生错误,其出错原因是
A)定义语句出错,case是关键字,不能用作用户自定义标识符 B)定义语句出错,printF不能用作用户自定义标识符 C)定义语句无错,scanf不能作为输入函数使用
18
D)定义语句无错,printf不能输出case的值 (14)表达式:(int)((double)9/2)-(9)%2的值是 A)0 B)3 C)4 D)5
15)若有定义语句:int x=10;,则表达式x-=x+x的值为 A)-20 B)-10 C)0 D)10
(16)有以下程序 #include main()
{ int a=1,b=0;
printf(“%d,”,b=a+b); printf(“%d\\n”,a=2*b); }
程序运行后的输出结果是 A)0,0 B)1,0 C)3,2 D)1,2
17)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是 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;a=b;b=c;} (18)有以下程序 #include main() { int c=0,k;
for (k=1;k<3;k++) switch (k)
{ default: c+=k case 2: c++;break; case 4: c+=2;break; }
printf(“%d\\n”,c); }
程序运行后的输出结果是 A)3 B)5 C)7 D)9
(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A)if((a>b)&&(b>c)) k=1; else k=0;
B)if((a>b)||(b>c) k=1; else k=0;
C)if(a<=b) k=0; else if(b<=c) k=1; D)if(a>b) k=1; else if(b>c) k=1; else k=0;
20)有以下程序 #include main()
{ char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++)
if(s[i]>=?a?&&s[i]<=?z?) n++; printf(“%d\\n”,n); }
程序运行后的输出结果是 A)0
19
B)2 C)3 D)5
(21)有以下程序 #include main()
{ int n=2,k=0;
while(k++&&n++>2); printf(“%d %d\\n”,k,n); }
程序运行后的输出结果是 A)0 2 B)1 3 C)5 7 D)1 2
(22)有以下定义语句,编译时会出现编译错误的是 A)char a=?a?; B)char a=?\\n?; C)char a=?aa?; D)char a=?\\x2d?; (23)有以下程序 #include main()
{ char c1,c2; c1=?A?+?8?-?4?; c2=?A?+?8?-?5?;
printf(“%c,%d\\n”,c1,c2); }
已知字母A的ASCII码为65,程序运行后的输出结果是 A)E,68 B)D,69 C)E,D
D)输出无定值 (24)有以下程序 #include void fun(int p) { int d=2;
p=d++; printf(“%d”,p);} main() { int a=1;
fun(a); printf(“%d\\n”,a);} 程序运行后的输出结果是 A)32 B)12 C)21 D)22
(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能 #define MIN -2147483647 int findmax (int x[],int n) { int i,max;
for(i=0;i return max; } 造成错误的原因是 A)定义语句int i,max;中max未赋初值 B)赋值语句max=MIN;中,不应给max赋MIN值 C)语句if(max D)赋值语句max=MIN;放错了位置 (26)有以下程序 #include main() { int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf(“%d,%d,%d,%d\\n”,m,n,*p,*q); 20