2012年下半年二级C语言理论试题

合集下载

2012年9月份二级C语言试题及答案分类汇总表(100套题)

2012年9月份二级C语言试题及答案分类汇总表(100套题)
for(i=m+1;k!=0;i++) {for(j=2;j<i;j++)
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语言理论试题

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语言题库及参考答案

2012计算机二级C语言题库及参考答案
int i, j ;
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笔试真题及答案

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语言笔试试卷答案详解及解析汇报汇报

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语言试题及答案

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次

全国计算机等级考试二级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月

全国计算机等级考试二级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)解析:[考点] 本题考查:链表的基本操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C.i--;j=0;D.j=i;
(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"};
相关文档
最新文档