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;
- 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"};