2012年下半年二级C语言理论试题
2012年9月份二级C语言试题及答案分类汇总表(100套题)
if(i%j==0) break; if(i==j){xx[cnt++]=i;k--;} } }
6 参考答案 :
1.<= 2.n++ 3.return s 参考答案 : 1.for(i=2;i<m;i++) 应改为 :for(i=2;i<=m;i++) 2.y-=1/(i*i); 应改为 y-=1.0/(i*i); 参考答案 : void fun(char a[], char b[], int n) { int i,cnt=0;
void fun(int x, int pp[], int *n) {
int i,cnt=0;
for(i=1;i<=x;i++)
if((x%i==0)&&(i%2!=0)) pp[cnt++]=i;
*n=cnt;
}
4. 参考答案 :
1.i<=n 2.|| 3.1.0 参考答案 : 1.void fun(char *s,int a,int b) 应改为 void fun(char *s,int *a,int *b) 2.a++ 应改为 (*a)++; 3.b++ 应改为 (*b)++; 参考答案 :---------26 分 void fun(char *tt, int pp[]) {int i;
.,,,,
.(共 3 套 )
16,,,,,,,,,,,,,,,,,,,, 十三、链表操作
2012年下半年二级C语言理论试题
if(n<=2)return 1;
else return f2(n-1)+f2(n-2);
}
main()
{
int a=4;
printf("%d %d\n",a!=a,a&&10);
printf("%d %d\n",~(~a^a),a|1);
f1(3);
printf("%d %d\n",f2(4),f2(5));
D.printf("Enter %d integers:",n);
(2)A.scanf("%d",&pre);B.;
C.scanf("%d",&cur);D.scanf("%d",&n);
(3)A.cur=nB.break
C.pre=nD.continue
(4)A.pre=curB.cur=0
C.cur=preD.pre=0
C.sum=sum+n%10;D.sum=sum+n/10;
(8)A.n=n*10;B.n=n%10;
C.n=n-10;D.n=n/10;
3.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入一个字符串(少于80个字符),将其两端分别加上括号后组成一个新字符串。要求定义和调用函数cat(s,t),该函数将字符串t连接到字符串s。
(1)double power(double x,int n)
{
double result=1;
int i;
for(i=1;i<=n;i++)
2012计算机二级C语言题库及参考答案
for(i = 1 ; i < 6 ; i++)
for(j = i + 1 ; j < 6 ; j++)
{
if(*(s + i) < *(s + j))
{
ch = *(s + j) ;
*(s + j) = *(s +i) ;
{
if(*(s + i)<*(s + j))
{
ch = *(s + j) ;
*(s + j) = *(s +i) ;
*(s + i) = ch ;
} }
答题方法:
1填空题例如程序中__1__,对应答案1,把__1__删除填入 ss[i] ,三个空都填完(一般2-3个空)然后编译保存程序即可。
1 if(*p==' ')
2 *(p-1)=toupper(*(p-1));
3请编写函数fun对长度为7个字符的字符串,除首、尾字符外,将其余5个字符ASCII码降序排列。
char ch ;
int i, j ;
for(i=1; i<6;i++)
for(j=i+1;j<6;j++)
char *p=a;
int j=0,len=0;
while(*p){p++;len++;}
while(j<len-h-e){
a[j]=a[h+j];
j++;
}
a[j]=0;
2012计算机二级C笔试真题及答案
全国计算机等级考试二级C语言2012年3月试题及答案一、填空题1、C语言中基本的数据类型有:__________、__________、__________。
2、C语言中普通整型变量的类型说明符为__________,在内存中占__________字节,有符号普通整型的数据范围是__________。
3、整数-35在机内的补码表示为__________。
4、执行下列语句int a=8;a+=a-=a*a;后,a的值是__________。
5、有如下语句:char A[]={”I am a student”};该字符串的长度是__________,A[3]=__________。
6、符号”a”和’a’的区别是__________。
7、所谓“指针”就是__________。
“&”运算符的作用是__________。
“*”运算符的作用是__________。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是__________。
二、选择题1、设整型变量a为5,使b不为2的表达式是()。
A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是()。
int x=10,y=10;printf(“%d%d\n”,x--,--y);A.1010B.99C.910D.1094、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为()。
A.P+i*2B.P+(i-1)*2C.P+(i-1)D.P+i5、选出下列标识符中不是合法的标识符的是()。
2012年9月全国计算机的等级考试二级C语言笔试试卷答案详解及解析汇报汇报
(1)下列链表中,其逻辑结构属于非线性结构的是_________。
A)双向链表B) 带链的栈 C) 二叉链表D) 循环链表(1)C 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps 中第13张说明:链表存储结构是数据的存储结构;排除链表因素,从数据逻辑结构来看,线性结构包括线性表、栈和队;非线性结构包括树形结构和图形结构,所以二叉树是树形结构,即非线性结构。
(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A) 20 B) 0或35 C) 15 D) 16(2)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第100-101张关于入队(Q.rear=Q.rear+1)与退队(Q.front=Qfront+1)运算规则,此外第一次入队为Q.rear=1;第一次退队为Q.front=1。
并假定循环队列最大个数为maxsize,其相应存储空间为1: maxsize,则循环队列的入队与退队图例和运算后元素个数的确定原则如下:循环队列中的元素个数或称队列长度通用计算公式:(Q.rear-Q.front+ maxsize)% maxsize 例如,Q.rear=20,Q.front=15,则循环队列中的元素个数=(20-15+35)%35=5;Q.rear=40,Q.front=15,则循环队列中的元素个数=(40-15+35)%35=25;本题根据Q.rear=Q.front=15,maxsize=35,则循环队列中元素个数=(15-15+35)%35=0或35;(3)下列关于栈的叙述中,正确的是A) 栈底元素一定是最后入栈的元素B) 栈操作遵循先进后出的原则C) 栈顶元素一定是最先入栈的元素D) 以上三种说法都不对(3)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第63张幻灯片说明:栈元素入、退原则:先进后出(FILO)或后进先出(LIFO)。
2012年计算机二级c语言试题及答案
2012年计算机二级c语言试题及答案一、选择题1. 下列选项中,不属于C语言的关键字是()A. intB. mainC. whileD. break2. 下列选项中,不属于C语言标准数据类型的是()A. floatB. doubleC. long doubleD. real3. 在C语言中,i++和++i的区别是()A. i++先做赋值,再自增;++i先自增,再赋值B. i++和++i完全相同C. i++先自增,再做赋值;++i先赋值,再自增D. i++和++i都不进行赋值操作4. 在C语言中,用于输出语句的函数是()A. printB. scanfC. getsD. printf5. 下列选项中,程序的入口函数是()A. mainB. startC. beginD. init二、填空题1. 计算机二进制以0b开头,十六进制以_____开头。
2. C语言中,用于循环执行一段代码的关键字是_____。
3. 在C语言中,用于定义常量的关键字是_____。
4. C语言种类转义字符'\n'表示_____。
5. C语言中,用于声明一个整型变量的关键字是_____。
三、简答题1. 请简述C语言中的条件判断语句if-else的用法。
2. 请简述C语言中的for循环的用法。
3. 请简述C语言中的switch语句的用法。
四、编程题1. 编写一个C语言程序,求1到100之间所有奇数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 != 0) {sum += i;}}printf("1到100之间所有奇数的和为:%d\n", sum);return 0;}```2. 编写一个C语言程序,输出九九乘法表。
```c#include <stdio.h>int main() {for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {printf("%d * %d = %d\t", j, i, i*j);}printf("\n");}return 0;}```以上是2012年计算机二级C语言试题及答案的内容。
全国计算机等级考试二级C语言真题2012年09月-36次
窗体顶端11. 以下叙述中正确的是()。
A) 在C语言程序中,main函数必须放在其它函数的最前面B) 每个后缀为.C的C语言源程序都可以单独进行编译C) 在C语言程序中,只有main函数才可单独进行编译D) 每个后缀为.C的C语言源程序都应该包含一个main函数A B C D 未答题该题得分:0正确答案:B试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:12. C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是()。
A) 预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义B) 用户标识符可以由字母和数字任意顺序组成C) 在标识符中大写字母和小写字母被认为是相同的字符D) 关键字可用作用户标识符,但失去原有含义A B C D 未答题该题得分:0正确答案:A试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:13. 以下选项中表示一个合法的常量是(说明:符号口标识空格)A)9口9口9 B)0Xab C) 123E0.2 D)2.7eA B C D 未答题该题得分:0正确答案:B试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:14. C语言主要是借助以下哪个功能来实现程序模块化()。
A) 定义函数 B) 定义常量和外部变量 C) 三种基本结构语句 D)丰富的数据类型A B C D 未答题该题得分:0正确答案:A试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:15. 以下叙述中错误的是()。
A) 定义符号常量必须用类型名来设定常量的类型B) 用符号名表示的常量叫符号常量C) 非零的数值型常量有正值和负值的区分D) 常量是在程序运行过程中值不能被改变的量A B C D 未答题该题得分:0正确答案:A试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:16. 若有定义和语句:int a,b;scanf(“%d,%d”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给b变量的是()。
全国计算机等级考试二级C语言机试真题2012年09月
全国计算机等级考试二级C语言机试真题2012年09月(总分:100.00,做题时间:90分钟)一、程序填空题(总题数:1,分数:30.00)1.下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。
函数fun的功能是:把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>#include <stdlib.h>#define N 8typedef struct listint data;struct 1ist * next;SLIST;void fun(SLIST * h, int x)SLIST * P, * q, * s;s=(SLIST* )malloc(sizeof(SLIST));/********** found********** /s->data=______;q=h;p=h->next;while(p! =NULL && x>p->data)/********** found********** /q=______;p=p->next;s->next=p;/********** found********** /q->next=______;SLIST * creatlist(int * a)SLIST * h, * p, * q; int i;h=p=(SLIST * )malloc(sizeof(SLIST));for(i=0; i<N; i ++)q=(SLIST * )malloc(sizeof(SLIST));q->data=a[i]; p->next=q; p=q;p->next=0;return h;void outlist(SLIST * h)SLIST * p;p=h->next;if(p==NULL)printf("/nThe list is NULL! /n");elseprintf("/nHead");do printf("->% d", p->data);p=p->next;while(p!=NULL);printf("->End/n");main()SLIST * head; int x;int a[N]=11, 12, 15, 18, 19, 22, 25, 29;head=creatlist(a);printf("/nThe list before inserting: /n");outlist(head);printf("/nEnter a number: ");scanf("%d", &x);fun(head, x);printf("/nThe list after inserting: /n");outlist(head);(分数:30.00)填空项1:__________________ (正确答案:(1)x (2)p (3)s)解析:[考点] 本题考查:链表的基本操作。
2012年的二级c语言真题及答案
(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)软件详细设计产生的图如下:该图是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)voidB)8_8C)_0_D)unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符 B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0C)3,2D)1,217)设有定义: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)有以下程序#includemain(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是A)3B)5C)7D)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{ 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)0B)2C)3D)5(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是A)0 2B)1 3C)5 7D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a=’a’;B)char a=’\n’;C)char a=’aa’;D)char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是 A)E,68C)E,DD)输出无定值(24)有以下程序#includevoid fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是A)32B)12C)21D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<N;I++)< p="" />{ max=MIN;if(maxreturn max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(maxD)赋值语句max=MIN;放错了位置(26)有以下程序#includemain(){ 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);}程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1](28)有以下程序#include#includemain(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World(29)有以下程序#includemain(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4B)2 0 5 0C)3 0 4 0D)0 3 0 4(30)有以下程序#include#includemain(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是 A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char * a,char * b){ whi le((*b=*a)!=’\0’) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun;B)viod *pf(); pf=fun;C)void *pf(); *pf=fun;D)void (*pf)(int,char);pf=&fun;(34)有以下程序#includeint f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7B)8C)9D)10(35)有以下程序#include#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序运行后的输出结果是A)10,64B)10,10C)64,10D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]=”string”;c=str;B)scanf(“%s”,c);C)c=getchar();D)*c=”string”;(38)有以下程序#include#includestruct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1001,ZhangDa,1202.0C)1001,ChangRong,1098.0D)1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16B)8C)4D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。
2012年二级C语言题库答案
三、程序编写题
char *fun ( char *s, char *t)
{
int i,j;
for(i=0;s[i];i++);
for(j=0;lt[j];j++);
if(i>=j)
return s;
else
return j;
}
第7套题
一、程序填空题
1、q 2、next 3、next
二、程序改错题
x[][]改成x[M][M]或x[][M]
f改成d
三、程序编写题
void fun(int a, int b, long *c)
{
*c=a/10*1000+b%10*100+a%10*10+b/10;
}
第24套题
一、程序填空题
1、02、x*103、n/10
二、程序改错题
t改成*t
0改成1
{
int i=0;
for(;*ss;ss++)
if(*ss==c)
i++;
returnI;
}
第13套题
一、程序填空题
1、&&2、03、s[j]
二、程序改错题
<改成<=
1改成1.
三、程序编写题
void fun ( int a[3][3], int b[3][3])
{
int i,j;
for(i=0;i<3;i++)
三、程序编写题
void fun(char *s, char t[])
{
int i,j=0;
2012年计算机二级考试C语言部分真题
2012年计算机二级考试C语言部分真题=4)>2C)3='A'&&aa[j][0]){ t=a[i][0];a[i][0]=a[j][0];a[j][0]=t;}puts(a[1]);}程序运行后的输出结果是A)fwoB)fixC)twoD)owo(33)有以下程序#includeint a=1,b=2;void fun1(int a, int b){ printf(“%d%d”,a,b); }void fun2( ){ a=3; b=4; }main(){ fun1(5,6); fun2();printf("%d%d\n",a,b);}程序运行后的输出结果是A)1 2 5 6B)5 6 3 4C)5 6 1 2D)3 4 5 6(34)有以下程序#includefunc(int n){ static int num=1;num=num+n;printf("%d",num); }void main(){ func(3);func(4);printf("\n"); } 程序运行后的输出结果是A)4 8B)3 4C)3 5D)4 5(35)有以下程序#include#includefun(int *p1,int *p2,int *s){ s=(int*)malloc(sizeof(int));*s=*p1+*p2;free(s);}void main(){ int a=1,b=40,*q=&a;fun(&a,printf("%d\n",*q);}程序运行后的输出结果是A)42B)0C)1D)41(36)有以下程序#includestruct STU{char name[9];char sex;int score[2];}; void f(struct STU a[]){ struct STU b={"zhao",'m',85,90};a[1]=b;}main(){ struct STU c[2]={{"Qian",'f',95,92},{"Sun",'m',98,99}};f(c);printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0]. score[1]);printf("%s,%c,%d,%d\n,",c[1].name,c[1].sex,c[1].score[0],c[ 1].score[1]);}程序运行后的输出结果是A)Zhao,m,85,90,Sun,m,98,99B)Zhao,m,85,90, Qian,f,95,92C)Qian,f,95,92,Sun,m,98,99D)Qian,f,95,92,Zhao,m,85,90(37)以下叙述中错误的是A)可以用trpedef 说明的新类型名来定义变量B)trpedef 说明的新类型名必须使用大写字母,否则会出编译错误C)用trpedef 可以为基本数据类型说明一个新名称D)用trpedef 说明新类型的作用是用一个新的标识符来代表已存在的类型名(38)以下叙述中错误的是A)函数的返回值类型不能是结构体类型,只能是简单类型B)函数可以返回指向结构体变量的指针C)可以通过指向结构体变量的指针访问所指结构体变量的任何成员D)只要类型相同,结构体变量之间可以整体赋值(39)若有定义语句int b=2; 则表达式(b,则输出结果是【8】。
2012年全国计算机二级C考试资料
2012计算机二级C语言笔试精选试题1.若有以下定义:floatx;inta,b,c=2;,则正确的switch语句是()A)switch(x){ case1.0∶printf("*\n");case2.0∶printf("**\n");}B)switch(int(x)){ case1∶printf("*\n");case2∶printf("**\n");}C)switch(a+b){ case1∶printf("*\n");case1+2∶printf("**\n");}D)switch(a+b){ case1∶printf("*\n");casec∶printf("**\n");}2.执行下面程序片段的结果是()int x=123;do{ printf("=\n",x--);}while(!x);A)打印出321B)打印出123C)不打印任何内容D)陷入死循环3.以下程序的输出结果是()# includemain(){ int i=0,a=0;while(i<20){ for(;;){ if((i )==0)break;else i--; }i+=11;a+=i;}考试通printf("%d\n",a);}A)21 B)32 C)33 D)114.下列与表达式“b=(a<0?-1∶a>0?1∶0)”的功能等价选项是()A)b=0;if(a>=0)if(a>0) b=1;else b=-1;B)if(a>0)b=1;else if(a<0)b=-1;elseb=0C)if(a)if(a<0) b=-1;else if(a>0)b=1;else b=0;D) b=-1;if(a)if(a>0)b=1;else if(a==0)b=0;else b=-1;5.若有以下定义:char a; int b; float c; double d; 则表达式“a*b+d-c”值的类型为()A)float B)int C)char D)double6.以下叙述中正确的是()A)在函数中必须要有return语句B)在函数中可以有多个return语句,但只执行其中的一个C)return语句中必须要有一个表达式D)函数值并不总是通过return语句传回调用处7.有以下程序float fun(int x,int y){ return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是()A)编译出错 B)9 C)21 D)9.08.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;其中0≤i≤9,则对a数组元素不正确的引用是()A)a[p-a] B)*(&a[i]) C)p[i] D)a[10]9.以下叙述中正确的是()A)全局变量的作用域一定比局部变量的作用域大B)静态(static)类型变量的生存期贯穿于整个程序的运行期间C)函数的形参都属于全局变量D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值10.若有如下程序:main(){char a[][9]={"china","Japan","USA","France"};printf("\′%s\′\n",a[2]);}则程序运行后的输出结果是()A)′Japan′ B)′USA′ C)USA D)′inaJapanUSAFrance′答案:1.C 2.B 3.B 4.B 5.D 6.B 7.B 8.D 9.B 10.BC 语言最重要的知识点复习资料总体上必须清楚的:1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
2012年9月全国计算机2级考试(C语言程序设计)笔试模拟试题及答案
2012年9月全国计算机2级考试(C语言程序设计)笔试模拟试题及答案2012年9月全国计算机等级考试二级笔试模拟试题C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是()A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是()A)栈 B)树 C)队列 D)二叉树(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是()A)10 B)8 C)6 D)4(4)下列排序方法中,最坏情况下比较次数最少的是()A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是() A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序(6)下面叙述中错误的是()A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。
下列叙述中正确的是()A)提高耦合性降低内聚性有利他哦高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合性是指一个模块内部各个元索间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是()A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训(9)有两个关系R, S如下:由关系R通过运算得到关系S,则所使用的运算为()A)选择 B)投影 C)插入 D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为()A)属性 B)键 C)关系 D)域(11)以下选项中合法的标识符是()A)1_1 B)1-1 C)_11 D)1_ _(12)若函数中有定于语句:int k;,则()A)系统将自动给K赋初值0B)时k中的值无定义C)系统将自动给k赋初值-1D)这时k中无任何值(13)以下选项中,能用作数据常量的是()A)0115 B)0118 C)1.5e1.5 D)115L(14)设有定义:int x=2;,以下表达式中,值不为6的是()A)x*=x+1 B)x++,2*x C)x*=(i+x) D)2*x, x+=2(15)程序段:int x=12; double y=3.141593; printf(“%d%8.6f”, x, y);的输出结果是() A)123.141593 B)12 3.141593 C)12, 3.141593 D)123.1415930(16)若有定义语句:double x, y,*px,*pY; 执行了px=&x; py=&y;之后,正确的输入语句是() A)scarf(“%f%1”,x,y);B)scarf(“%f%f”,&x,&y);C)scarf(“%lf%1e”,px,py);D)scarf(“%lf%lf”,x,y);(17)以下是if语句的基本形式:()if〔表达式)语句其中“表达式”A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式(18)有以下程序A)n=0; while((ch=getchar())!='\n’) n++;B)n=0; while(getchar()!='1n‘) n++;C)for( n=0;getchar()!='\n';n++);D)n=0; for( ch=getchar(); ch! ='\n';n++);(23)有以下程序#include <stdio.h>main(){int al,a2;char cl,c2;scanf(“%d%c%d%c”,&a1,&cl,&a2,&c2);printf(“%d, %c. %d, %c”,a1,c1,a2, c2);}若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为自负b,程序输出的结果是:12,a,34,b 则正确的输入格式是(以下~代表空格,<CR>代表回车)()A)i2a34b<CR>B)12~a~34~b<CR>C)12,a,34,b<CR>D)12~a34~b<CR>(24)有以下程序#include <stdio.h>int f(int x,int y){return((y-x)*x);)main(){int a=3,b=4,c=5,d;d=f(f(a,b),f(a, c));printf(“od\n”,d);}程序运行后的输出结果是()A)10 B)9 C)8 D)7(25)有以下程序#include <stdio.h>void fun (char *s){while(*s){if(*s%2==0)printf(“%c”,*s);s++;}}main(){char a[]=(“good”};fun(a);printf(“\n”);}注意:字母a的ASCII码值为97,程序运行后的输出结果是()A)d B)go C)god D)good(26)有以下程序#include <stdio.h>void fun(int *a,int *b){int *c;c=a;a=b;b=c;}main(){int x=3, y=5,*p=&x, *q=&y;fun (p,q);printf(“%d,%d,”,*P,*q):fun(&X, &y);printf(“%d,%d\n”;*p.*q);}程序运行后的输出结果是()A)3,5.5,3 B)3,5,3,5 C)5,3,3,5 D)5,3,5,3(27)有以下程序#include <stdio.h>void flint *p,int *q);main()int m=l,n=2,*r=&m;f (r, &n);printf(“%d,od”,m, n);}void f(int *p,int *q){p=p+l: *q=*q+1;}程序运行后的输出结果是()A)1,3 B)2,3 C)1,4 D)1,2(28)以卜函数按每行8个输出数组中的数据vold fun( int *w,int n){int i;for(i=0;i<n;i++){_____________printf(“%d”,w[i]);}printf(“\n”);}下划线处应填入的语句是()A)if(i/8==0)printf(“\n”);B)if(i/8==0)continue;C)if(i%8==0)printf(“\n”);D)if(i%8==0)contInue;(29)若有以下定义int x[1O], *pt=x;则对x数组元素的正确引用是()A)*&x[10] B)*(x+3) C)*(pt+10) D)pt+3(30)设有定义:char s[81]; int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是()A)gets(s);B)while((s[i++]=getchar())!='\n’);s[i]= '\0';C)scarf(“%s”,s);D)do{ scarf(“%c”,&s[i]); }while(s[i++]!='\n‘); s[i]='\0';(31)有以下程序#include <stdio.h>nain(){char *a[ ]=(“abed”,“ef”,“gh”,“ijk”}; int I;for(i=0;i<4;i++)printf(“%c”,*a[i]);}程序运行后的输出结果是()A)aegiB)dfhkC)abedD)abcdefghijk(32)以下选项中正确的语句组是()A)char s[]; s=“BOOK!”;B)char * s={“BOOK!”};C)char sf10}; s=“BOOK!”;D)char* s=“BOOK!”;(33)有以下程序#include <stdio.h>int fun(int x,int y){if (x==y) return(x);else return((x+y)/2);main()( int a=4,b=5,c=6;ptintf(“%d\n”, fun (2*a,fun(b,c)));}程序运行后的输出结果是()A)3 B)6 C)8 D)12(34)设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是()A)autoB)registerC)staticD)auto或register(35)有以下程序#include <stdio.h>int b=2.;int fun(int *k){b=*k+b; return (b);}main(){int a〔10],{1,2,3, 4,5,6,7,8),i;for(i=2;i<4;i++)(b=fun(&a[i])+b; printf(“%d”;b);printf(“\n”);}程序运行后的输出结果是()A)10 12 B)8 10 C)10 28 D)10 1b(36)有以下程序#include <stdio.h>#define PT 3 .5;#define S(x) PT*x*x;main(){ int a=1,b=2;printf(“%4 .if\n”, S(a+b));}程序运行后的输出结果是()A)14.0 B)31.5 C)7.5 D)程序有错无输出结果(37)有以下程序#include <stdio.h>struct ord{int x,y;}bt[2]={1,2,3,4};main(){struct ord *p=dt;printf(“%d”,++p->x); printf(“%d\n”,++p->y);}程序的运行结果是()A)1,2 B)2,3 C)3,4 D)4,1(38)设有宏定义:#define IsDIV(k,n)((k%n=I)?1:0)且变量m己正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是()A)判断m是否能被5或者7整除B)判断m是否能被5和7整除C)判断m被5或者7整除是否余1D)判断m被J和7整除是否都余(39)有以一下程序main(){int a=5,b=1, t;t=(a《2)|b; printf(“%d\n”,t);}程序运行后的输出结果是()A)21 B)11 C)6 D)1(40)有以下程序#include <stdio.h>main(){FILE *f;f=fopen(“filea.txt”,“w”);fprintf(f,“abc”);fclose(f);}若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt中的内容为()A)helloabc B)abclo C)abc D)ahchelln二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
2012年计算机二级C语言单项选择题及答案解析精选
【1.61】答案:D
【1.62】答案:D
注释:主调函数中b=0,在执行fun1函数里的除法时发生溢出错误。
【1.63】答案:B
【1.64】答案:C
【1.65】答案:D
注释:在答案D中,正确的函数调用应当是:printf("%d", *y)。
【1.66】答案:C
注释:要注意与说明语句"int (*p)[ ];"的区别。说明语句"int (*p)[ ];"说明的是一个指向数组的指针。
【1.85】答案:D
【1.86】答案:B
【1.87】答案:C
【1.88】答案:A
【1.89】答案:D
【1.90】答案:D
【1.91】答案:A
【1.92】答案:B
【1.93】答案:A
【1.94】答案:D
注释:函数fopen中的第二参数是打开模式,"r"模式是只读方式,不能写文件;"a+"模式是读/追加方式,允许从文件中读出数据,但所有写入的数据均自动加在文件的末尾;"w"模式是写方式,允许按照用户的要求将数据写入文件的指定位置,但打开文件后,首先要将文件的内容清空。"r+"模式是读/写方式,不但允许读文件,而且允许按照用户的要求将数据写入文件的指定位置,且在打开文件后,不会将文件的内容清空。本题的要求是"修改"文件的内容,因此只能选择答案D。
引用temp.ch进行输出,只取最低的第一个字节。
【1.84】答案:D
注释:由于结构指针指向了结构数组的0号元素,所以表达式(p++)->m的含义是先取出m(变量a的地址),然后指针p加1。表达式*(p++)->m的含义是先取出m的内容(变量a的值),然后指针p再加1。表达式(*p).m的含义是取出m(变量a的地址)。表达式*(++p)->m的含义是先将指针p加1,然后再取m的内容(变量b的值)。
2012年3月计算机二级C语言笔试真题及答案详解-推荐下载
C、10
B、循环队列是队列的一种链式存储结构
D、循环队列是一直逻辑结构
B、队列是一种后进先出的线性表
D、以上三种说法都不对
C、软件测试
B、确定软件系统的系统的系能需求
D、需求规格说明书审评
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术通关,1系电过,力管根保线据护敷生高设产中技工资术艺料0不高试仅中卷可资配以料置解试技决卷术吊要是顶求指层,机配对组置电在不气进规设行范备继高进电中行保资空护料载高试与中卷带资问负料题荷试2下卷2,高总而中体且资配可料置保试时障卷,各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并22工且22作尽22下可22都能22可地护以缩1关正小于常故管工障路作高高;中中对资资于料料继试试电卷卷保破连护坏接进范管行围口整,处核或理对者高定对中值某资,些料审异试核常卷与高弯校中扁对资度图料固纸试定,卷盒编工位写况置复进.杂行保设自护备动层与处防装理腐置,跨高尤接中其地资要线料避弯试免曲卷错半调误径试高标方中高案资等,料,编试要5写、卷求重电保技要气护术设设装交备备置底4高调、动。中试电作管资高气,线料中课并敷3试资件且、设卷料中拒管技试试调绝路术验卷试动敷中方技作设包案术,技含以来术线及避槽系免、统不管启必架动要等方高多案中项;资方对料式整试,套卷为启突解动然决过停高程机中中。语高因文中此电资,气料电课试力件卷高中电中管气资壁设料薄备试、进卷接行保口调护不试装严工置等作调问并试题且技,进术合行,理过要利关求用运电管行力线高保敷中护设资装技料置术试做。卷到线技准缆术确敷指灵设导活原。。则对对:于于在调差分试动线过保盒程护处中装,高置当中高不资中同料资电试料压卷试回技卷路术调交问试叉题技时,术,作是应为指采调发用试电金人机属员一隔,变板需压进要器行在组隔事在开前发处掌生理握内;图部同纸故一资障线料时槽、,内设需,备要强制进电造行回厂外路家部须出电同具源时高高切中中断资资习料料题试试电卷卷源试切,验除线报从缆告而敷与采设相用完关高毕技中,术资要资料进料试行,卷检并主查且要和了保检解护测现装处场置理设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
2012年9月全国计算机等级考试二级C语言笔试试题和答案(含公共基础题)全解
29 1)main() { char a[10]="abcde",b[]="fgh"; int i=0; strcpy(a+1,b+2); printf("%s",a); } 请详细解释一下”strcpy(a+1,b+2)”这句语句 2)main() { char s[][10]={"a","good",world"}; strcat(s[0],s[1]); printf("%s",s[0]);}请详细解释一下”strcat(s[0],s[1])”这句语句strcpy()是字符串复制函数。
连字符串的结束标志‘\0’一同复制。
对于strcpy(a+1,b+2);中的b+2则是数组里的“h\0”的首地址。
a+1则是数组里的“bcde”的首地址。
即此函数的意义是:把“h\0”复制到“bcde”的位置。
字符串遇到‘\0’结束即结果是:ah。
对于strcat(s[0],s[1]);中的二为数组可以看成是多个一维数组组成的。
所以s[0]代表的是“a”的首地址,s[1]代表的是“good”的首地址。
这是字符串连接函数。
即把good 放到了a的后面。
结果是:agood。
二级C语言程序设计答案及详解一、选择题(11)B)【解析】每一个C 语言的文件或函数都可以单独编译,但只有main 函数的才可以执行。
(12)A)【解析】预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin 等和编译预处理命令名(如define 和include)。
预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。
(13)B)【解析】0xab 是十六进制表示的常量。
(14)A)【解析】C语言用函数实现软件的模块化设计。
(15)C)【解析】C语言中,常常用一个标识符来代表一个常量,称为符号常量。
2012年到2010年计算机二级C语言笔试真题及答案详解
2012年3月全国计算机等级考试二级C语言真题一.选择题1.下列叙述中正确的是:A.循环队列是队列的一种顺序存储结构B.循环队列是队列的一种链式存储结构C.循环队列是非线性结构D.循环队列是一直逻辑结构2.下列叙述中正确的是A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈和队列都是非线性结构D.以上三种说法都不对3.一棵二叉树共有25个节点,其中5个时子节点,那么度为1的节点数为A.4 B.6 C.10 D.164.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A.内模式B.外模式C.概念模式D.逻辑模式5.在满足实体完整性约束的条件下A.一个关系中可以没有候选关键词B.一个关系中只能有一个候选关键词C.一个关系中必须有多个候选关键词D.一个关系中应该有一个或者多个候选关键词6.有三个关系R.S和T如下:SA B Ca 1 2b 2 1RA B Ca 1 2b 2 1c 3 1TA B Ca 2 1b 3 1则由关系R和S得到关系T的操作是A.自然连接B.并C.差D.交7.软件生命周期中的活动不包括A.软件维护B.市场调研C.软件测试D.需求分析8.下面不属于需求分析阶段任务的是A.确定软件系统的功能需求B.确定软件系统的系统的系能需求B.制定软件集成测试计划D.需求规格说明书审评9.在黑盒测试方式中,设计测试用例的主要根据是A.程序外部功能B.程序内部逻辑C.程序数据结构D.程序流程图10.在软件设计中不使用的工具是A.系统结构图B.程序流程图C.PAD图D.数据流图(DFD图)11.针对简单程序设计,以下叙述的实施步骤正确的是A.确定算法和数据结构.编码.调试.整理文档B.编码.确定算法和数据结构.调试.整理文档C.整理文档.确定算法和数据结构.编码.调试D.确定算法和数据结构.调试.编码.整理文档12.关于C语言中数的表示,以下叙述正确的是A.只有整型数在允许范围内能精确无误的表示,实型数会有误差B.只要在在允许范围内整型和实型都能精确表示C.只有实型数在允许范围内能精确无误的表示,整型数会有误差D.只有八进制表示的数在不会有误差13.以下关于算法叙述错误的是A.算法可以用伪代码.流程图等多种形式来描述B.一个正确的算法必须有输入C.一个正确的算法必须有输出D.用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码14.以下叙述错误的是A.一个C程序可以包含多个不同名的函数B.一个C程序只能有一个主函数C.C程序在书写时,有严格的缩进要求,否则不能编译通过D.C程序的主函数必须用main作为函数名15.设有以下语句Char ch1,ch2, scanf(”%c%c”,&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是A.A和B之间用逗号间隔B.A和B之间不能有任何间隔符C.A和B之间可以用回车间隔D.A和B之间用空格间隔16.以下选项中非法的字符常量是A.’\102’ B.’\65’ C.’\xff’ D.’\019’17.有以下程序#include <sthio.h>Main(){Int A=0,B=0,C=0;C=(A-=A-5);(A=B,B+=4);Printf(“%d, %d, %d\n”,A,B,C)}程序运行后输出的结果是A 0,4,5B 4,4,5C 4,4,4D 0,0,018.设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是A.x++; printf((“%d\n”,x); B.n=++x; printf((“%d\n”,n);C.++x; printf((“%d\n”,x); D.n=x++; printf((“%d\n”,n);19.以下选项中,能表示逻辑值“假”的是A 1B 0.000001C 0D 100.0 20.有以下程序#include <sthio.h>Main(){ int a;Scanf(“%d”,&a);If(a++<9) printf((“%d\n”,a);Else printf((“%d\n”,a--);}程序运行时键盘输入9<回车>,则输出的结构是A.10 B 11 C 9 D 821.有以下程序#include <sthio.h>Main(){int s=0,n;For (n=0;n<3;n<++){switch(s){ case 0;Case 1;s+=1;Case 2;s+=2;break;Case 3;s+3;Case 4;s+=4;}printf((“%d\n”,s);}}程序运行后的结果是A 1,2,4B 1,3,6C 3,10,14D 3,6,1022.若k是int类型变量,且有以下for语句For(k=-1;k<0;k++)printf(****\n”);下面关于语句执行情况的叙述中正确的是A.循环体执行一次B.循环体执行两次C.循环体一次也不执行D.构成无限循环23.有以下程序#include <sthio.h>Main(){char A,B,C;B=’1’;C=’A’For(A=0;A<6;A++){if(A%2) putchar(B+A);Else putchar(C+A);}}程序运行后输出的结果是A 1B3D5FB ABCDFEC A2C4E6D 12345624.设有如下定义语句Int m[ ]={2,4,6,8},*k=m;以下选项中,表达式的值为6的是A *(k+2)B k+2C *k+2D *k+=225.fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。
2012年9月 全国计算机等级考试 二级C语言 笔试试卷、答案及解析
2012年9月22日网上发布的全国计算机等级考试二级C语言笔试答案一、选择题:(1)C、(2)B、(3)B、(4)D、(5)A(6)C、(7)C、(8)B、(9)A、(10)A(11)B、(12)A、(13)B、(14)A、(15)C(16)C、(17)C、(18)B、(19)D、(20)D(21)B、(22)D、(23)D、(24)B、(25)D(26)C、(27)A、(28)B、(29)C、(30)A(31)C、(32)A、(33)B、(34)A、(35)D(36)D、(37)B、(38)A、(39)B、(40)D二、填空题【1】6【2】20【3】逻辑独立【4】选择【5】系统软件【6】a>b【7】%lf%f【8】224【9】16【10】4321【11】7【12】22【13】2【14】6【15】p=p->next2012年9月22日评阅者注释的全国计算机等级考试二级C语言笔试答案一、选择题:(1)C、(2)B、(3)B、(4)D、(5)A(6)C、(7)C、(8)B、(9)A、(10)A(11)B、(12)A、(13)B、(14)A、(15)C(16)C、(17)C、(18)B、(19)D、(20)D(21)B?、(22)D、(23)D、(24)B、(25)D(26)C?、(27)A、(28)B、(29)C、(30)A(31)C、(32)A、(33)B、(34)A、(35)D(36)D、(37)B、(38)A、(39)B、(40)D二、填空题【1】6【2】20【3】逻辑独立性【4】选择【5】系统软件【6】a>b【7】%lf%f【8】224【9】16【10】4321【11】7【12】22【13】2【14】6【15】p=p->next2012年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题(⑴-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
2012年3月计算机二级C语言笔试真题及答案详解
2012年3月全国计算机等级考试二级C语言真题一、选择题1、下列叙述中正确的是:A、循环队列是队列的一种顺序存储结构B、循环队列是队列的一种链式存储结构C、循环队列是非线性结构D、循环队列是一直逻辑结构2、下列叙述中正确的是A、栈是一种先进先出的线性表B、队列是一种后进先出的线性表C、栈和队列都是非线性结构D、以上三种说法都不对3、一棵二叉树共有25个节点,其中5个时子节点,那么度为1的节点数为A、4B、6C、10D、164、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A、内模式B、外模式C、概念模式D、逻辑模式5、在满足实体完整性约束的条件下A、一个关系中可以没有候选关键词B、一个关系中只能有一个候选关键词C、一个关系中必须有多个候选关键词D、一个关系中应该有一个或者多个候选关键词6、有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A、自然连接B、并C、差D、交7、软件生命周期中的活动不包括A、软件维护B、市场调研C、软件测试D、需求分析8、下面不属于需求分析阶段任务的是A、确定软件系统的功能需求B、确定软件系统的系统的系能需求B、制定软件集成测试计划D、需求规格说明书审评9、在黑盒测试方式中,设计测试用例的主要根据是A、程序外部功能B、程序内部逻辑C、程序数据结构D、程序流程图10、在软件设计中不使用的工具是A、系统结构图B、程序流程图C、PAD图D、数据流图(DFD图)11、针对简单程序设计,以下叙述的实施步骤正确的是A、确定算法和数据结构、编码、调试、整理文档B、编码、确定算法和数据结构、调试、整理文档C、整理文档、确定算法和数据结构、编码、调试D、确定算法和数据结构、调试、编码、整理文档12、关于C语言中数的表示,以下叙述正确的是A、只有整型数在允许范围内能精确无误的表示,实型数会有误差B、只要在在允许范围内整型和实型都能精确表示C、只有实型数在允许范围内能精确无误的表示,整型数会有误差D、只有八进制表示的数在不会有误差13、以下关于算法叙述错误的是A、算法可以用伪代码、流程图等多种形式来描述B、一个正确的算法必须有输入C、一个正确的算法必须有输出D、用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码14、以下叙述错误的是A、一个C程序可以包含多个不同名的函数B、一个C程序只能有一个主函数C、C程序在书写时,有严格的缩进要求,否则不能编译通过D、C程序的主函数必须用main作为函数名15、设有以下语句Char ch1,ch2, scanf(”%c%c”,&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是A、A和B之间用逗号间隔B、A和B之间不能有任何间隔符C、A和B之间可以用回车间隔D、A和B之间用空格间隔16、以下选项中非法的字符常量是A、’\102’B、’\65’C、’\xff’D、’\019’17、有以下程序#include <sthio.h>Main(){Int A=0,B=0,C=0;C=(A-=A-5);(A=B,B+=4);Printf(“%d, %d, %d\n”,A,B,C)}程序运行后输出的结果是A 0,4,5B 4,4,5C 4,4,4D 0,0,018、设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是A、x++; printf((“%d\n”,x);B、n=++x; printf((“%d\n”,n);C、++x; printf((“%d\n”,x);D、n=x++; printf((“%d\n”,n);19、以下选项中,能表示逻辑值“假”的是A 1B 0.000001C 0D 100.020、有以下程序#include <sthio.h>Main(){ int a;Scanf(“%d”,&a);If(a++<9) printf((“%d\n”,a);Else printf((“%d\n”,a--);}程序运行时键盘输入9<回车>,则输出的结构是A、10 B 11 C 9 D 821、有以下程序#include <sthio.h>Main(){int s=0,n;For (n=0;n<3;n<++){switch(s){ case 0;Case 1;s+=1;Case 2;s+=2;break;Case 3;s+3;Case 4;s+=4;}printf((“%d\n”,s);}}程序运行后的结果是A 1,2,4B 1,3,6C 3,10,14D 3,6,1022、若k是int类型变量,且有以下for语句For(k=-1;k<0;k++)printf(****\n”);下面关于语句执行情况的叙述中正确的是A、循环体执行一次B、循环体执行两次C、循环体一次也不执行D、构成无限循环23、有以下程序#include <sthio.h>Main(){char A,B,C;B=’1’;C=’A’For(A=0;A<6;A++){if(A%2) putchar(B+A);Else putchar(C+A);}}程序运行后输出的结果是A 1B3D5FB ABCDFEC A2C4E6D 12345624、设有如下定义语句Int m[ ]={2,4,6,8},*k=m;以下选项中,表达式的值为6的是A *(k+2)B k+2C *k+2D *k+=225、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(10)A.s[i]=t[j];B.s[j]=t[i];
C.s[i+j]=t[j];D.t[i]=s[j];
(11)A.t[j]='\0';B.s[i+j]='\0';
C.s[j]='\0';D.t[i]='\0';
(12)A.cat("(",t);B.cat(t,s);
C.cat("(",t,")");D.cat(s,t);
4.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include <stdio.h>
void f1(int n)
{
while(n--)
printf("%d ",n);
printf("%d\n",n);
}
int f2(int n)
A.threeB.fiveC.fourD.seven
(22)程序运行时,第2行输出(22)。
A.ourB.hreeC.evenD.ive
(23)程序运行时,第3行输出(23)。
A.veB.reeC.urD.ven
(24)程序运行时,第4行输出(24)。
A.nB.rC.eD.en
二、程序编写(每小题14分,共28分)
Enter 6 integers:1 2 3 6 40 12 50
stored:No
Enter n:5
Enter 5 integers:10 8 7 3 1
stored:Yes
【程序】
#include <stdio.h>
main()
{
int cur,i,n,pre;
printf("Enter n:");
{
if(n<=2)return 1;
else return f2(n-1)+f2(n-2);
}
main()
{
int a=4;
printf("%d %d\n",a!=a,a&&10);
printf("%d %d\n",~(~a^a),a|1);
f1(3);
printf("%d %d\n",f2(4),f2(5));
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i][j])
nozero++;
printf("矩阵中百零元素的个数是:%d\n",nozero);
}
2、#include <stdio.h>
运行示例:
Enter a string:hello
After:(hello)
【程序】
#include <stdio.h>
void cat(char *s,char *t)
{
int i,j;
i=0;
while(s[i]!='\0')
i++;
(9)//j=0;
while(t[j]!='\0')
{
(10)//s[i++]=t[j];
2012年下半年浙江省高等学校计算机等级考试
二级C语言程序设计试卷
一、程序阅读与填空(24小题,每小题3分同,共72分)
1.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入一个正整数n,再输入n个整数,判断它们是否按从大到小的次序排列。
运行示例:
Enter n:6
printf("stored:Yes\n");
else
printf("stored:No\n");
}
【供选择的答案】
(1)A.printf("Enter integers:",n);
B.printf("Enter6integers:");
C.printf("Enter %d integers:");
j++;
}
(11)//s[i]='\0';
}
main()
{
char s[80]="(",t[80];
printf("Enter a string:");
gets(t);
(12)//cat(s,t);
cat(s,")");
printf("After:");
puts(s);
}
【供选择的答案】
(9)A.j=0;B.s[i]=’\0’;
main()
{
char c;
while((c=getchar())!='0')
{
switch(c)
{
case '1':
case '9':continue;
case 'A':putchar('a');
continue;
default:putchar(c);
}
}
}
【问题】
(17)程序1运行时,第1行输出(17)。
{
int i;
int sumdigit(int n);
for(i=10;i<=99;i++)
if((5))//sumdigit(i)==12
printf("%d ",i);
printf("\n");
}
int sumdigit(int n)
{
int sum;
(6) //sum=0;
do{
(7)//sum=sum+n%10;
1.输入1个正整数n(1≤n≤6),然后输入n行n列的矩阵,z统计并输出该矩阵中非零元素的数量。
2.按下面要求编制写程序:
(1)定义函数power(x,n)计算x的n次幂(即xn),函数返回值类型是double 。
(2)定义函数main(),输入正整数n ,计算并输出下珍算式的值。要求调用函数power(x,n)计算x的n次幂(即xn)。
(1)double power(double x,int n)
{
double result=1;
int i;
for(i=1;i<=n;i++)
result*=2;
return result;
}
(2)main()
{
int i,n;
double sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&n);
(1);//printf("Enter %d integers:",n);
scanf("%d",&pre);
for(i=1;i<n;i++)
{(2);//scanf("%d",&cur);
if(cur>pre)
(3)//break;
(4)//pre=cur;
}
if(i>=n)
S=2+22+23+……+2n
参考答案:一、
1、DCBA2、ABCD3、ACBD4、ABCD
5、DCBA6、BDAC
二、
1、#include <stdio.h>
main()
{
int a[6][6],n,i,j,nozero=0;
printf("输入正整数n");
scanf("%d",&n);
printf("输入%d行%d列矩阵:\n",n,n);
A.****B.***C.**D.*
(18)程序运行时,第2行输出(18)。
A.****B.***C.**D.*
(19)程序2运行时,第1行输出(19)。
A.26B.10C.22D.6
(20)程序2运行时,第2行输出(20)。
A.26B.7C.22D.6
6.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
D.printf("Enter %d integers:",n);
(2)A.scanf("%d",&pre);B.;
C.scanf("%d",&cur);D.scanf("%d",&n);
(3)A.cur=nB.break
C.pre=nD.continue
(4)A.pre=curB.cur=0
C.cur=preD.pre=0
【程序】
#include <stdio.h>
main()
{
int i,j;
char *s[4]={"five","four","three","seven"};