2013年9月份国家计算机等级考试二级C语言题库(共100套)61-80

合集下载

2013年全国计算机二级C上机考试题库100套(可打印)

2013年全国计算机二级C上机考试题库100套(可打印)

类型一:调整一个数的个、十、百、千位1.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。

例如,当a=45,b=12,调用该函数后c=4152。

*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);填空:STYPE FILE Fp改错:for( i=0; i<=sl; i ++) 把s后字母改为小写Lt[2*sl] = '\0';2.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。

例如,当a=45,b=12,调用该函数后c=1524。

*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);填空:*fw str str改错:void fun(long s,long *t)sl=sl*10;3.请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c中。

合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。

例如,当a=45,b=12,调用该函数后c=2514。

*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);填空:fp fclose(fp) fname改错:for ( i=j+1; i<=n-1 ; i++ )p=i;4.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。

例如,当a=45,b=12,调用该函数后c=5142。

2013二级C语言编程100题

2013二级C语言编程100题

1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。

答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有整数,并将他们放在a所指的数组中,通过n返回这些数的个数。

答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。

答案:void fun(char *tt, int pp[]){int i;for (i=0;i<26;i++)pp[i]=0;while (*tt){switch (*tt){case ‘a’: pp[0]++;break;case ‘b’: pp[1]++;break;case ‘c’: pp[2]++;break;case ‘d’: pp[3]++;b reak;case ‘e’: pp[4]++;break;case ‘f’: pp[5]++;break;case ‘g’: pp[6]++;break;case ‘h’: pp[7]++;break;case ‘i’: pp[8]++;break;case ‘j’: pp[9]++;break;case ‘k’: pp[10]++;break;case ‘l’: pp[11]++;break;case ‘m’: pp[12]++;break;case ‘n’: pp[12]++;bre ak;case ‘o’: pp[14]++;break;case ‘p’: pp[15]++;break;case ‘q’: pp[16]++;break;case ‘r’: pp[17]++;break;case ‘s’: pp[18]++;break;case ‘t’: pp[19]++;break;case ‘u’: pp[20]++;break;case ‘v’: pp[21]++;break;case ‘w’: pp[22]++;break;case ‘x’: pp[23]++;break;case ‘y’: pp[24]++;break;case ‘z’: pp[25]++;break;}tt++;}}5: 第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。

2013年9月份国家计算机等级考试二级C语言题库(共100套)(1)

2013年9月份国家计算机等级考试二级C语言题库(共100套)(1)

第四十一套请补充函数fun,该函数的功能是:判断一个数是否为素数。

该数是素数时,函数返回字符串"yes!",否则函数返回字符串"no!",并在主函数中输出。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdlib.h>#include <conio.h>#include <stdio.h>【1】{int I, m;m=1;for(I=【2】;I<n; I++)if (【3】){m=0;break;}if (m==1&&n>1)return("yes!");elsereturn("no!");}void main(){int k=0;system("CLS");printf("Input:");scanf("%d",&k);printf("%s\n",fun(k));}【参考答案】(1) char *fun(int n) (2) 2(3) n%i==0或!(n%i)【考点分析】本题考查:函数的定义;for循环语句中循环变量的取值范围;判定非素数算法。

【解题思路】填空1:根据main( )中调用的函数fun(k),可知函fun的形参为int型变量,函数的返回值为字符型指针。

填空2:判断一个数是否为素数时,也就是判断这个数是否有除了1和其自身之外的因子,所以for循环的变量从2开始,直到这个数的前一个数。

填空3:如果一个数能被除了1和其自身之外的数整除(即余数为0),则这个数不是素数。

下列给定程序中,函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。

全国计算机二级《C语言》考试题库与答案

全国计算机二级《C语言》考试题库与答案

全国计算机二级《C语言》考试题库与答案全国计算机二级《C语言》考试题库与答案在学习、工作中,我们都离不开试题,借助试题可以检验考试者是否已经具备获得某种资格的基本能力。

什么样的试题才能有效帮助到我们呢?以下是店铺为大家收集的全国计算机二级《C语言》考试题库与答案,欢迎大家分享。

全国计算机二级《C语言》考试题库与答案篇1(1)下列关于栈叙述正确的是( )。

A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除(2)下列叙述中正确的是( )。

A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。

A.3B.4C.6D.7软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是( ):A.学生成绩管理系统B.c语言编译程序C.UNIX操作系统D.数据库管理系统(5)结构化程序所要求的基本结构不包括( )。

A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构(6)下面描述中错误的是( )。

A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是( )。

A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言一个教师可讲授多门课程,一门课程可由多个教师讲授。

则实体教师和课程间的联系是( )。

A.1:1联系B.1:m联系C.m:1联系D.m:n联系(9)已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。

以下不能将变量C中的大写字母转换为对应小写字母的语句是( )。

2013年9月份国家计算机等级考试二级C语言题库(共100套)

2013年9月份国家计算机等级考试二级C语言题库(共100套)

第六十一套请补充main函数,该函数的功能是:输出一个矩阵,要求非对角线上的元素赋值为0,对角线元素赋值为1。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdlib.h>#include <stdio.h>#define N 10void main(){int bb[N][N];int I,j,n;system("CLS");printf(" \nInput n:\n");scanf("%d",&n);for(I=0;I<n;I++)for(j=0;j<n;j++){【1】;if(I==j)bb[I][j]=【2】;if(【3】)bb[I][j]=1;}printf(" \n***** the result ***** \n");for(I=0;I<n;I++){printf(" \n\n");for(j=0;j<n;j++)printf("%4d",bb[I][j]);}}【参考答案】(1) bb[i][j]=0 (2) 1 (3) j==n-1-i【考点分析】本题考查: 二维数组元素赋值。

【解题思路】填空1:本题的解题思路是先将所有元素置0,然后再将对角线上的元素置1,所以此空是先将当前元素置0。

填空2:如果当前元素的下标i和j相等,则此元素是主对角线元素,要将它赋值为1。

填空3:如果当前元素的下标i和j满足关系j==n-1-i,则此元素也是对角线元素,也要将它赋值为1。

【解题宝典】对于n*n二维数组,通过二维数组元素的下标来表示数组对角线上的元素,即数组的行列下标相等。

下列给定的程序中,fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的"单词"是指有空格隔开的字符串)。

2013年9月份全国计算机二级C语言考试参考资料1——真题

2013年9月份全国计算机二级C语言考试参考资料1——真题

2013年9月二级C语言真题及答案(考试时间:120分钟,满分100分)一、选择题((1)-(10)每题2分,(11)-(50)每题1分.共60分)) (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)数据的逻辑结构与存储结构必定是一一对应的B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线线结构D)以上三种说法都不对(7)冒泡排序在最坏情况下的比较次数是A)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219 B)221 C)229 D)231(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(11)C语言源程序名的后缀是A).exe B).C C).obj D).cp(12)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl(13)以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A. 5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e5(14)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D)scanf("%d",&p);(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;(18)有以下程序段int j; float y; char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0(19)若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i)其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环(20)有以下计算公式若程序前面已在命令中包含math.h文件,不能够正确计算上述公式的程序段是A)if(x>=0) y=sqrt(x); B)y=sqrt(x)else y=sqrt(-x); if(x<0) y=sqrt(-x);C)if(x>=0)y=sqrt(x); D)y=sqrt(x>=0?x:-x);If(x<0)y=sqrt(-x);(21)设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1)(22)有以下程序#includemain(){int y=9;for( y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)875421(23)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是A)isupper(c) B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’ D)c<=(‘2’-32)&&(‘a’-32)<=c(24)有以下程序#includemain(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是A)0 B)1 C)2 D)3(25)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(26)已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。

2013全国计算机等级考试新大纲二级C语言题库及参考答案

2013全国计算机等级考试新大纲二级C语言题库及参考答案

参考答案第一套题二、程序填空题本题是根据给定的公式来计算函数的值。

第一处:程序中使用双精度double类型进行计算,所以函数的返回值类型也为double,所以应填:double。

第二处:当i等于1时,则返回f1函数的值,所以应填:f1。

第三处:如果i不等于1,则返回f2函数的值,所以应填:f2。

三、程序修改题解题思路:第一处: 试题要求返回字符串的首地址,所以应改为:char *fun(char *s,char *t)第二处: 取字符串指针ss的下一个位置,所以应改为:ss++;。

第三处:取字符串指针tt的下一个位置,所以应改为:tt++;。

四、程序设计题解题思路:本题是考察字符串的操作。

1. 由于函数fun1是将字符串中字符循环左移一个位置,并通过实参w返回循环左移一个位置的字符串。

2. 利用循环for语句来操作多少个字符(m)需要循环左移。

参考答案:void fun(char *w, int m) /* 可调用fun1函数左移字符*/{int i;for(i = 0 ; i < m ; i++) fun1(w);}第二套题一、选择题解题思路:第一处:计算好的平均值通过形参av返回,所以应填:*av。

第二处:计算小于平均值且最接近平均值的位置j,所以应填:i。

第三处:返回该数,所以应填:x[j]。

三、程序修改题解题思路:第一处:函数的返回是浮点型数,所以应改为:float fun(int n)。

第二处:for的终止条件应是i<=n。

四、程序设计题解题思路:本题是利用两重循环给二维数组右上三角元素中的值乘以m。

参考答案:int fun ( int a[][N], int m ){int i, j;for(i = 0 ; i < N ; i++)for(j = i ; j < N ; j++)a[i][j] *= m ;}第三套题一、选择题解题思路:第一处:如果n是奇数,则中间的元素不动,所以应填:1。

2013全国计算机等级考试新大纲二级C语言题库及参考答案-推荐下载

2013全国计算机等级考试新大纲二级C语言题库及参考答案-推荐下载

C
A
D
B
B
C
B
D
C
C
A
B
B
A
A
D
A
B
A
D
if(strcmp(a[i].num, b)==0) { /* 判断学号是否相等 */ strcpy(c.num, a[i].num) ; /* 相等,则对学号进行赋值 */ c.s=a[i].s; /* 相等,则对成绩进行赋值 */ break ; /* 退出循环体 */ } return c ; /* 返回结构体变量 */ }
第三套题
一、选择题
1-10 D
11-20 B
21-30 A
31-40 A
二、程序填空题
解题思路:
D
A
D
A
C
D
D
B
第一处:如果 n 是奇数,则中间的元素不动,所以应填:1。
第二处:使用 for 循环语句来交换数组元素的值,所以应填:i。 第三处:使用中间变量 t 来交换的,所以应填:t。 三、程序修改题
解题思路:
B
A
A
C
第一处:在函数 fun 体中,k 是一个浮点型变量,所以应改为:float k;。
C
D
D
D
第二处:三个数比较大小,第 1 个条件是第 1 个比第 2 个小,则交换。第 3 个条件是第 2
个比第 3 个小,则也交换。第 2 个条件是应该第 1 和第 3 个小,则交换就符合题意了,所
以应改为: if(*a<*c)。
解题思路:
第一处: 试题要求返回字符串的首地址,所以应改为:char *fun(char *s,char *t)
第二处: 取字符串指针 ss 的下一个位置,所以应改为:ss++;。 第三处:取字符串指针 tt 的下一个位置,所以应改为:tt++;。 四、程序设计题

全国计算机等级考试二级C语言真题2013年9月

全国计算机等级考试二级C语言真题2013年9月

全国计算机等级考试二级C语言真题2013年9月(总分:100.00,做题时间:90分钟)一、选择题(总题数:40,分数:40.00)1.一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是______。

(分数:1.00)A.12345ABCDEB.EDCBA54321 √C.ABCDE12345D.54321EDCBA解析:[解析] 栈是按照先进后出的原则组织数据,所以入栈最早的最后出栈,所以选择B。

2.下列叙述中正确的是______。

(分数:1.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的√解析:[解析] 循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以B与C错误。

3.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是______。

(分数:1.00)A.O(n)B.O(n2)C.O(log2n) √D.0(nlog2n)解析:[解析] 当有序线性表为顺序存储时才能用二分法查找。

可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较log2n次,而顺序查找需要比较n次。

4.下列叙述中正确的是______。

(分数:1.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的√B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间解析:[解析] 链式存储结构既可以针对线性结构也可以针对非线性结构,所以B与C错误。

2013年9月全国计算机等级考试二级c语言笔试试题(含参考答案)

2013年9月全国计算机等级考试二级c语言笔试试题(含参考答案)

全国计算机等级考试二级笔试试卷基础部分和C语言程序设计(考试时间120分钟,满分100分)2013年9月一、选择题((1)-(40)每个选项1分,(41)-(50)每个选项2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应的位置上,答在试卷上不得分。

(1) 十进制数1385转换成十六进制数为A) 568 B) 569 C) D85 D) D55(2) 下列叙述中正确的是A) 计算机病毒只能传染给可执行文件B) 计算机软件是指存储在软盘中的程序C) 计算机每次启动的过程之所以相同,是因为RAM中的所有信息在关机后不会丢失D) 硬盘虽然装在主机箱内,但它属于外存(3) 一个字长的二进制位数是A) 8 B) 16 C) 32 D) 随计算机系统而不同的(4) CPU主要由运算器与控制器组成,下列说法中正确的是A) 运算器主要负责分析指令,并根据指令要求作相应的运算B) 控制器主要完成对数据的运算,包括算术运算和逻辑运算C) 控制器主要负责分析指令,并根据指令要求作相应的运算D) 控制器直接控制计算机系统的输入与输出操作(5) 下列叙述中正确的是A) 将数字信号变换成便于在模拟通信线路中传输的信号称为调制B) 以原封不动的形式将来自终端的信息送入通信线路称为调制解调C) 在计算机网络中,一种传输介质不能传送多路信号D) 在计算机局域网中,只能共享软件资源,而不能共享硬件资源(6) 各种网络传输介质A) 具有相同的传输速率和相同的传输距离B) 具有不同的传输速率和不同的传输距离C) 具有相同的传输速率和不同的传输距离D) 具有不同的传输速率和相同的传输距离(7) 多媒体计算机系统的两大组成部分是A) 多媒体功能卡和多媒体主机B) 多媒体通信软件和多媒体开发工具C) 多媒体输入设备和多媒体输出设备D) 多媒体计算机硬件系统和多媒体计算机软件系统(8) 按通信距离划分,计算机网络可以分为局域网和广域网。

2013年9月份全国计算机等级考试二级C语言题库及详解

2013年9月份全国计算机等级考试二级C语言题库及详解

1 2013年9月份 全国计算机等级考试二级C 语言 试题题库(无纸化考试专用)(说明:无纸化考试选择题40分,程序题60分。

学会这些题,保证二级高空飘过!!!)第一套给定程序的功能是:求二分之一圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:S r π=2,在程序中定义的变量名要与公式的变量相同)。

例如,输入圆的半径值:19.527,输出为:s=598.949991。

注意:部分源程序给出如下。

请勿改动main 函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。

试题程序:#include <stdio.h> double fun( double r) { return 3.14159*【1】/2.0;}void main() {double x; printf("Enter x: "); scanf("%lf",【2】);printf("s=%lf\n",fun(【3】));}【参考答案】 (1)r*r (2)&x (3)x【考点分析】 本题考查:圆面积计算公式S π=*r*r;scanf( )函数的形式,其一般形式为"scanf("格式控制字符串",地址表列);",注意地址是由地址运算符"&"后跟变量名组成的;printf( )函数的形式,其一般形式为"printf("格式控制字符串",输出表列);";函数实参调用,函数作为另一个函数调用的实际参数出现。

【解题思路】填空1:计算圆的面积,公式为:s r π=*r 。

填空2:scanf( )函数一般形式为scanf(格式控制,地址表列),因此填入&x 。

填空3:函数的实际参数是圆的半径x 。

下列给定程序中,函数fun 的功能是:计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值。

2013二级c语言真题100道

2013二级c语言真题100道

第1套填空题请补充FUN函数,FUN 函数的功能是求10的阶乘。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdio.h>long fun(int n){if (___1___)return (n*fun(___2___));return ___3___;}main(){printf("10!=%ld\n",fun(10));}第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K 〈=10000),打印它的所有因子(即所有为素数的因子)。

例如,若输入整数2310,则应输出:2、3、5、7、11。

请改正程序中的错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h> /********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter aninteger number between 2 and10000:");scanf("%d", &k);printf("\n\nThe primefactor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) &&(IsPrime(j)))printf(" %4d,", j);printf("\n");}第1处:Isprime(int n);应改为Isprime(int n)第2处:if !(n%i)应该为if(!(n%i))第2套填空题请在函数FUN的横线上填写若干表达式,使从键盘上输入一个整数N,输出斐波纳契数列。

2013年9月份国家计算机等级考试二级C语言题库(共100套)(2)

2013年9月份国家计算机等级考试二级C语言题库(共100套)(2)

请补充函数fun,该函数的功能是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。

例如,若输入"Are you come from Sichuan?",则输出"are you come from sichuan?"。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdio.h>#include <string.h>#include <conio.h>char *fun(char tt[]){int i;for(i=0;tt[i];i++){if((tt[i]>='A')&&( 【1】))【2】;}return (【3】) ;}void main(){char tt[81];printf("\nPlease enter a string:");gets(tt);printf("\nThe result string is: \n%s", fun(tt));}【参考答案】(1) tt[i]<='Z' (2) tt[i]+=32 (3) tt【考点分析】本题考查:if语句,一般需根据题意确定条件表达式;大写字母转换成小写字母的方法;通过return语句将函数值返回。

【解题思路】填空1:此处考查判断大写字母的方法,如果字符的ASCII码大于字符A的ASCII码,并且小于字符Z的ASCII码,则此字符为大写字母。

填空2:考生必须掌握大写字母转换为小写字母的方法,小写字母的ASCII码比大写字母的ASCII码大32。

填空3:函数fun的返回值为字符型指针,而字符型的数组名就是字符型指针,所以返回tt。

下列给定程序中函数fun的功能是:求出字符串中最后一次出现的子字符串的位置,通过函数值返回,在主函数中输出从此位置开始的字符串;若未找到,则函数值为NULL。

2013年全国计算机二级C语言考试真题

2013年全国计算机二级C语言考试真题

1、对于一个正常运行的C程序,以下叙述中确的是A)程序的执行总是从main 涵数开始B)程序的执行总是从程序的笫一个函数开始,在程序的最后一个函数中结束C)程序的执行总是从main函数幵始,在程序的最后一个函数中结束D)程序的执行总是从程序的笫一个函数开始,在main函数结束3、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是A)x+1=yB) x=x+10=x+yC)double (x)/10D)++x,y=x--4、以下选项中能表示合法常量的是A)‟\‟B)1,200C)1.5E2.0D)”\007”5、以下定义语句中正确的是A) double a=0.0;b=1.1;B) float a=1,*b=&a,*c=&b;C) int a=b=0;D) char A=65+1,b=‟b‟7、若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d”,&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是(注:□代表一个空格符)A) □□□1,2,3<回车>B)1,2,3<回车>C)1, □□□2, □□□3<回车>D)1 □2 □3<回车>8、当变量c的值不为2、4、6时,值也为“真”的表达式是()A (c>=2&&c<=6)&&(c%2!=1)B) (c>=2&&c<=6)&&!(c%2) )C) (c==2)‖(c==4)‖(c==6)D) (c>=2&&c<=6)‖(c!=3)‖(c!=5)9、以下选项中,值为1的表达式是A) …\0‟-…0‟B)‟1‟-0C)1-…0‟D)1- 030、以下选项中,不合法的C语言用户标识符是A a——bB AaBcC _1D a_b31. 以下选项中关于C语言常量的叙述错误的是A经常被使用的变量可以定义成常量B 所谓常量,是指在程序运行过程中,其值不能被改变的量C常量可分为数值型常量和非数值型常量D常量分为整型常置、实型常量、字符常量和字符串常量34、以下叙述中正确的是A C语句必须在一行内写完B C语言程序中的注释必须与语句写在同一行C C程序中的每一行只能写一条语句D 简单C语句必须以分号结束37、以下选项中不能作为C语言合法常量的是A ‟cd‟B‟\011‟ C 0.le+6 D "\a"58、以下选项中不能用作C程序合法常量的是A."\x7D"B.1,234C.123D.'\123'60、C语言源程序名的后缀是A) . cpB) .objC) .exeD) .C61、阅读以下程序#include <stdio .h>main (){ int case ;float printF;printf ("请输入2个数:");scanf ( "%d %f",&case, &printF );printf("%d %f\n",case,printF );}该程序在编译时产生错误,其出错原因是A.定义语句出错,case是关键字,不能用作用户自定义标识符B.定义语句无错,printf不能输出case的值C.定义语句无错,scanf不能作为输入函数使用D.定义语句出错,printF不能用作用户自定义标识符62.若有定义语句:int x=12,y=8, z;在其后执行语句z= 0.9+x/y;则z的值为A.2.4B.1C.2D.1.963. 表达式a+=a-= a=9的值是A.-9B.0D.1868. 以下选项中非法的c语言字符常量是A.'\b'B.'\xaa'C.'\007'D.'aa'72. 以下叙述中正确的是A.英文大写字母X和荚文小写字母x都可以作为二进制数字的开头字符B.八进制数的开头要使用英文字母o,否则不能与十进制区分开C. 在C程序中的八进制和十六进制,可以是浮点数D.整型变量可以分为int型、short型、long型和unsigned型四种79. 以下选项中,当x为大于1奇数时,值为0的表达式是A.x%2==0B.x%2==lC.x%2!=0D.x/2101. 以下选项中不能作为c语言合法常量的是A.'cd'B.'\011'C.0.le+6D."\a"104. 以下选项中不能用作C程序合法常量的是A"\x7D"B.1,234C.123D.'\123'134. 若有定义语句:char a='\82 ';则变量aA.包含3个字符B.说明不合法C.包含1个字符D.包含2个字符135. 有以下程序#include <stdio.h>main (){char cl='A',c2='Y';printf ("%d,%d\n", cl,c2 );}程序的输4结果是A.输出格式不合法,输出出错信息B.65.89D.65.90154. 以下选项中,能用作数据常量的是A.115LB.0118C.0115D.1.5el.5155. 设变量已正确定义并赋值,以下正确的表达式是A.x=y*5=x+zB.int(15.8%5)C.x-25%5.0D.x=y+z+5,++y185. 有以下程序#include <stdio.h>main(){ char a='H';a = ( a>='A' && a<= 'Z' ) ? (a+32) : a;printf("%c\n",a );}程序运行后的输出结果是A) AB) aC) hD) H194. 以下叙述中正确的是A)程序可以包含多个主函数,但总是从第一个主函数处开始执行B)书写源程序时,必须注意缩进格式,否则程序会有编译错误C)程序的主函数名除main外,也可以使用Mainl或_mainD)在C程序中,模块化主要是通过函数来实现的199. 以下叙述中正确的是A)字符变量在定义时不能赋初值B)同一英文字母的大写和小写形式代表的是同一个字符常量C)转义字符用@符号开头D)字符常量可以参与任何整数运算200. 以下叙述中正确的是A)"a"表示一个字符常量B)"\"是非法的C)'\0'表示字符0D)表达式:'a'>'b'的结果是"假"202. 以下叙述中正确的是A)由&&构成的逻辑表达式与由||构成的逻辑表达式都有"短路"现象B)C语言的关系表达式:0<x<10完全等价于:(0<x)&& (x<10)C)逻辑"或"(即运算符||)的运算级别比算术运算要高D)逻辑"非〃〈即运算符!)的运算级别是最低的219. c源程序中不能表示的数制是A) 八进制B)十六进制C)十进制D) 二进制221. 以下四个程序中,完全正确的是A) # include<stdio .h>main (){/* programming */printf("programming!\n"); }B)include<stdio. h>main (){/* programming */printf("programming!\n"); }C) #include <stdio.h>main ();{/* programming /*/printf("programming!\n"}; }D) # include<stdio .h>main (){/*/* programming */*/printf("programming!\n"); }222. 若有定义语句:int x=10;则表达式x-=x+x的值为A) 10B) -10C) -20D) 0224. 己知大写字母A的ASCII码是65’小写字母a的ASCII码是97。

2013年9月全国计算机等级考试二级C语言上机试题库100套(光碟拷贝版)

2013年9月全国计算机等级考试二级C语言上机试题库100套(光碟拷贝版)

2013年9月全国计算机等级考试二级C语言上机题库100套(从光碟拷贝出来的最完整版)(可以拷贝在U盘里,然后ctrl+F搜索,百分百有答案,祝考试成功)第一套1. 程序填空给定程序中,函数fun的功能是:计算下式前n 项的和作为函数值返回。

例如:当形参n的值为10 的时,函数返回:9.6125588。

第一处s=0;第二处for(i=1;i<=n;i++)第三处s=s+(2.0*i-1)*(2.0*i+1)/(t*t);2. 程序修改给定程序MODI1.C中函数fun的功能是:统计substr所指字符串在str所指字符串中出现伯次数。

/**found**/for(i=0;str[i];i++)/**found**/if(substr[k+1]==’\0’)3. 程序设计请编写一个函数fun,它的功能是:根据以下公式求JI的值(要求满足精度0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度为0.0005,则程序输出为3.14…。

double fun(double eps){ double s=1,t=1./3;int n=1;while(t>=eps){s+=t;n++;t=t*n/(2.0*n+1);}return(s*2.0);}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。

函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。

/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

计算机二级C语言100套上机填空题答案和改错题答案

计算机二级C语言100套上机填空题答案和改错题答案

填空题答案第1题答案第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或1l或1L第2题答案第1处填空:n==0或0==n或!n第2处填空:n==1或1==n第3处填空:fun(n-1)+fun(n-2)或fun(n-2)+fun(n-1)第3题答案第1处填空:n--或--n或n-=1或n=n-1第2处填空:s[i]=s[n]或*(s+i)=*(s+n)第3处填空:s[n]=t或*(s+n)=t第4题答案第1处填空:i<=n或n>=i第2处填空:||第3处填空:1.0或(double)1第5题答案第1处填空:r*r第2处填空:&x第3处填空:x第6题答案第1处填空:<=第2处填空:n++或n+=1或n=n+1 第3处填空:return s或return (s) 第7题答案第1处填空:n%10第2处填空:break第3处填空:break第8题答案第1处填空:&num[i]或num+i第2处填空:max<num[i]?或num[i]>max?第3处填空:num[i]!=0或0!=num[i] 第9题答案第1处填空:(*a)++或++(*a)或*a=*a+1或*a+=1第2处填空:(*b)++或++(*b)或*b=*b+1或*b+=1第3处填空:upper,lower第10题答案第1处填空:max=a第2处填空:max=b第3处填空:max=c第11题答案第1处填空:1第2处填空:s[k]或*(s+k)第3处填空:c 第12题答案第1处填空:tt[i]<='Z'或'Z'>=tt[i]第2处填空:32或'a'-'A'第3处填空:tt第13题答案第1处填空:char*fun(int n)第2处填空:2第3处填空:n%i==0或!(n%i)或0==n%i第14题答案第1处填空:*p或*p!='\0'或*p!=0第2处填空:i++或++i或i+=1或i=i+1第3处填空:'\0'或0第15题答案第1处填空:!=第2处填空:str[1]或*(str+1)第3处填空:s,c第16题答案第1处填空:n%100!=0或n%100或0!=n%100第2处填空:n%400==0或!(n%400)或0==n%400第3处填空:flag第17题答案第1处填空:n第2处填空:else第3处填空:a,b第18题答案第1处填空:*p==t或t==*p第2处填空:bb[n++]=i第3处填空:n第19题答案第1处填空:score[i]或*(score+i)第2处填空:below第3处填空:below[i]或*(below+i)第20题答案第1处填空:i第2处填空:j第3处填空:aa,&n第21题答案第1处填空:j++或++j或j+=1或j=j+1第2处填空:s[i]=t1[i]第3处填空:j第22题答案第1处填空:&&第2处填空:0第3处填空:s[j]或*(s+j)第23题答案第1处填空:int x[]或int*x第2处填空:sum+=x[i]或sum=sum+x[i]第3处填空:sum/n第24题答案第1处填空:a第2处填空:a第3处填空:b第25题答案第1处填空:n/2第2处填空:i第3处填空:a[n-i-1]第26题答案第1处填空:i=1第2处填空:&&第3处填空:--j或j-1第27题答案第1处填空:j=2第2处填空:i第3处填空:j第28题答案第1处填空:1第2处填空:s*i或i*s第3处填空:0第4处填空:s+fun(k)或fun(k)+s第29题答案第1处填空:0第2处填空:i<=x或x>=i第30题答案第1处填空:--i或i--或i-=1或i=i-1第2处填空:s[i]-'0'第3处填空:t*10+k或k+t*10或10*t+k或k+10*t第31题答案第1处填空:*(p1+i)或p1[i]或*(p1+i)!=0或p1[i]!=0第2处填空:*p2或p2[0]或*p2!=0或p2[0]!=0第3处填空:*p2++第32题答案第1处填空:sum+=x[i]或sum=sum+x[i]第2处填空:avg*1000或1000*avg第3处填空:(avg+5)/10或(5+avg)/10第33题答案第1处填空:1第2处填空:i第3处填空:a[p+i]或*(a+p+i)第34题答案第1处填空:bb[i]=0或*(bb+i)=0第2处填空:bb[5]++或++bb[5]或bb[5]=bb[5]+1或bb[5]+=1第3处填空:p++;或++p;或p+=1;或p=p+1;第35题答案第1处填空:i<*num或*num>i第2处填空:n++或++n或n+=1或n=n+1第3处填空:*num=n第36题答案第1处填空:&&第2处填空:s[i]-'0'第3处填空:n第37题答案第1处填空:xx[i]%10第2处填空:bb[n++]=xx[i]第3处填空:n第38题答案第1处填空:n/100%10第2处填空:"yes!"第3处填空:"no!"第39题答案第1处填空:"%d",&n第2处填空:str2[i]=str1[i];第3处填空:str2第40题答案第1处填空:"%s",str1第2处填空:%c第3处填空:str2第41题答案第1处填空:"%ld",&n第2处填空:n=-n;或n*=-1;第3处填空:"%ld",n第42题答案第1处填空:*p或p[0]第2处填空:default:b[10]++;第3处填空:p++;或p+=1;或p=p+1;或++p;第43题答案第1处填空:*p或*p!=0或0!=*p 第2处填空:bb[*p-'0']++或bb[*p-'0']+=1第3处填空:num[j]=bb[i]第44题答案第1处填空:0第2处填空:||第45题答案第1处填空:s1-i-1或s1-1-i第2处填空:2*s1或s1*2第46题答案第1处填空:*k第2处填空:s[i]>max或max<s[i] 第3处填空:i第47题答案第1处填空:xx[i]%10第2处填空:bb[n++]=xx[i]第3处填空:n第48题答案第1处填空:n>0或0<n第2处填空:n%10+'0'或'0'+n%10第3处填空:str[i]='\0'或str[i]=0第49题答案第1处填空:disc<0或0>disc第2处填空:sqrt第3处填空:sqrt第50题答案第1处填空:s第2处填空:*p++第3处填空:*(p)或*p或*p!=0第51题答案第1处填空:x>y或y<x第2处填空:x>z或z<x第3处填空:y>z或z<y第52题答案第1处填空:"out52.dat","w"第2处填空:fputc(ch,fp)第3处填空:fclose(fp)第53题答案第1处填空:i第2处填空:p->next=s第3处填空:p->next第54题答案第1处填空:*p1<*p2或*p2>*p1第2处填空:*p1>*p2或*p2<*p1第3处填空:'\0'或0第55题答案第1处填空:flag=1第2处填空:j%i==0或0==j%i或!(j%i)第3处填空:flag==1或1==flag第56题答案第1处填空:&&第2处填空:fputc(ch,fp1)第3处填空:fclose(fp)第57题答案第1处填空:double第2处填空:j第3处填空:1.0/t或(double)1/t第58题答案第1处填空:&n第2处填空:i=1第3处填空:f*=i或f=f*i或f=i*f第59题答案第1处填空:sum=0第2处填空:sum+=n或sum=sum+n或sum=n+sum第3处填空:ld第60题答案第1处填空:i<n或n>i第2处填空:j<n-1或n-1>j第61题答案第1处填空:bb[i]=0或*(bb+i)=0第2处填空:bb[i]+=score[i][j]或bb[i]=bb[i]+score[i][j]或bb[i]=score[i][j]+bb[i]第62题答案第1处填空:"%c",&str[i]或"%c",str+i第2处填空:str[i]!='*'或*(str+i)!='*'第3处填空:"%c",str[j]或"%c",*(str+j)第63题答案第1处填空:STU第2处填空:h第3处填空:h第64题答案第1处填空:str1[i]!=''或''!=str1[i]第2处填空:i++或++i或i+=1或i=i+1第65题答案第1处填空:bb[i][j]=1第2处填空:bb[i][j]=0第66题答案第1处填空:j>i或i<j第2处填空:bb[j]=bb[j-1]第3处填空:break第67题答案第1处填空:p=str第2处填空:p[i]++或++p[i]或p[i]+=1或p[i]=p[i]+1第3处填空:s[i]='\0'或s[i]=0第68题答案第1处填空:break第2处填空:'\0'或0第3处填空:*p++第69题答案第1处填空:<第2处填空:*p2或p2[0]第3处填空:str1第70题答案第1处填空:*(pstr+j)或pstr[j]第2处填空:pstr[j]或*(pstr+j)第3处填空:p第71题答案第1处填空:std[3]或std[]或*std第2处填空:PERSON第3处填空:std第72题答案第1处填空:N第2处填空:M第3处填空:bb[i]/N或*(bb+i)/N第73题答案第1处填空:bb[i][j]=0第2处填空:1第3处填空:j==n-1-i或j==n-i-1 第74题答案第1处填空:*std或std[0]第2处填空:std[i].age第3处填空:第75题答案第1处填空:&n第2处填空:t*i或i*t第3处填空:s+t或t+s第76题答案第1处填空:i第2处填空:s[j]=s[i]第77题答案第1处填空:N-1第2处填空:bb[n++]=aa[i]第3处填空:i,bb[i]第78题答案第1处填空:fun(char s[],int n)或fun(char*s,int n)第2处填空:j=0第3处填空:s[j]='\0'或s[j]=0第79题答案第1处填空:aa[i]%2==0或0==aa[i]%2或aa[i]%2第2处填空:i<k或k>i第80题答案第1处填空:--i或i--或i-=1或i=i-1 第2处填空:bb[j]=bb[i]第81题答案第1处填空:sum=0第2处填空:t[i][i]第3处填空:1第82题答案第1处填空:i%10第2处填空:g*g*g==i或i==g*g*g 第83题答案第1处填空:break;第2处填空:i++或++i或i+=1或i=i+1第3处填空:'\0'或0第84题答案第1处填空:&&第2处填空:i,j第85题答案第1处填空:[N]第2处填空:t[i][j]第3处填空:t[j][i]第86题答案第1处填空:N第2处填空:N-1第3处填空:0第87题答案第1处填空:&& 第2处填空:g+第88题答案第1处填空:s[i]或s[i]!=0或0!=s[i]第2处填空:s[i]==ch或ch==s[i]第3处填空:return n第89题答案第1处填空:s[i]!='\0'或s[i]或s[i]!=0第2处填空:32或'a'-'A'第3处填空:i++或++i或i+=1或i=i+1第90题答案第1处填空:STU第2处填空:std[i].num第3处填空:std[i]第91题答案第1处填空:i=1,j=0或j=0,i=1第2处填空:bb[j++]=i第3处填空:return j第92题答案第1处填空:str[i+1]或str[i+1]!='\0'或str[i+1]!=0第2处填空:str[i]=ch第93题答案第1处填空:aa[max]<aa[i]或aa[i]>aa[max]第2处填空:aa[min]>aa[i]或aa[i]<aa[min]第3处填空:aa[max]=aa[min]第94题答案第1处填空:i++或++i或i+=1或i=i+1第2处填空:s[j++]=s[i]第3处填空:s[j]='\0'或s[j]=0第95题答案第1处填空:0.0或0或(double)0第2处填空:n第3处填空:s第96题答案第1处填空:aa[k++]=t或aa[k]=t,k++或aa[k]=t;k++第2处填空:i<j或j>i第97题答案第1处填空:break第2处填空:t[i]第3处填空:u[ul]第98题答案第1处填空:s[i]!='\0'或s[i]或s[i]!=0第2处填空:25第3处填空:1第99题答案第1处填空:j%i==0或!(j%i)或0==j%i第2处填空:flag==1或flag或1==flag第3处填空:aver/n第100题答案第1处填空:k=0第2处填空:||第3处填空:s[k]='\0'或s[k]=0改错题答案第1题答案第1处:IsPrime(int n);应改为IsPrime(int n)第2处:if!(n%i)应改为if(!(n%i))第2题答案第1处:int k=1;应改为int k=0;第2处:while(*p!=*q)应改为while(*p||*q)第3题答案第1处:s[j]=s[i];应改为s[j++]=s[i];第2处:s[j]="\0";应改为s[j]='\0';第4题答案第1处:void fun(char*s,int a,int b)应改为void fun(char*s,int*a,int*b)第2处:a++;应改为(*a)++;第3处:b++;应改为(*b)++;第5题答案第1处:a[i+1]=a[i];应改为a[i]=a[i+1];第6题答案第1处:for(i=2;i<m;i++)应改为for(i=2;i<=m;i++)第2处:y-=1/(i*i);应改为y-=1.0/(i*i);第7题答案第1处:p=j应改为p=j;第2处:p=i;应改为p=j;第8题答案第1处:void fun(char*p);应改为void fun(char*p)第2处:p=q+i;应改为q=p+i;第9题答案第1处:t=s[k];应改为t+=s[k];第2处:*aver=&ave;应改为*aver=ave;第10题答案第1处:void fun(char*s,*t1,*t2,*w)应改为voidfun(char*s,char*t1,char*t2,char*w)第2处:while(r)应改为while(*r)第11题答案第1处:n=*p-'o';应改为n=*p-'0';第2处:n=n*7+*p-'o';应改为n=n*8+*p-'0';第12题答案第1处:a=NuLL;应改为a=NULL; 第2处:if(r==p)应改为if(*r==*p) 第13题答案第1处:t+=1.0/k;应改为t+=1.0/i; 第2处:应填return t;第14题答案第1处:int r;应改为double r;第2处:while(fabs(n-m)<0.001)应改为while(fabs(n-m)>0.001)第15题答案第1处:void fun(char str,char ch)应改为void fun(char*str,char ch)第2处:if(*str==ch)应改为if(*str=='\0')第3处:str[1]='0';应改为str[1]='\0';或str[1]=0;第16题答案第1处:p->next=NULL;应改为p=s; 第2处:s->data=rand()%m;应改为s->data=rand()%(m-1);第3处:return p;应改为return h; 第17题答案第1处:if((k%13=0)||(k%17=0))应改为if((k%13==0)||(k%17==0))第2处:应填}第18题答案第1处:void fun(int a,int b)应改为void fun(int*a,int*b)第2处:t=b;b=a;a=t;应改为t=*b;*b=*a;*a=t;第19题答案第1处:void fun(long s,long t)应改为void fun(long s,long*t)第2处:while(s<0)应改为while(s>0) 第20题答案第1处:void fun(int a[],int m)应改为int fun(int a[],int m)第2处:if(m>=a[mid])应改为if(m>a[mid])第21题答案第1处:p=h;应改为p=h->next;第2处:p=h->next;应改为p=p->next;第22题答案第1处:for(i=2;i<m;i++)应改为for(i=2;i<=m;i++)第2处:y+=1/(i*i);应改为y+=1.0/(i*i);第23题答案第1处:int fun(n)应改为int fun(int n)第2处:if(n=1)应改为if(n==1)第24题答案第1处:if(r==p)应改为if(*r==*p) 第2处:if(r=='\0')应改为if(*r=='\0')第25题答案第1处:if n==0应改为if(n==0)第2处:result=n--;应改为result*=n--;第26题答案第1处:应填sum=0;第2处:scanf("%d,",a[i][j]);应改为scanf("%d,",&a[i][j]);第27题答案第1处:t=0;应改为t=1.0;第2处:while(t<=eps)应改为while(t>=eps)第28题答案第1处:s=p;应改为p=s;第2处:应填p++;或++p;或p+=1;或p=p+1第3处:a[i]='0';应改为a[i]='\0';或a[i]=0;第29题答案第1处:b=a;应改为a=b;第2处:return(a);应改为return(b);第30题答案第1处:long k;应改为long k=1;第2处:num\=10;应改为num/=10;第31题答案第1处:if((tt[i]>='a')||(tt[i]<='z'))应改为if((tt[i]>='a')&&(tt[i]<='z'))第2处:tt[i]+=32;应改为tt[i]-=32;第32题答案第1处:if(i+1%5==0)应改为if((i+1)%5==0)第33题答案第1处:while(*s!='@')应改为while(*s)或while(*s!='\0')或while(*s!=0)第2处:(*s)++;应改为s++;第34题答案第1处:t=0;应改为*t=0;第2处:if(d%2==0)应改为if(d%2!=0)第35题答案第1处:if(p=='')应改为if(*p=='')第2处:*p=toupper(*(p-1));应改为*(p-1)=toupper(*(p-1));第36题答案第1处:j=1;应改为j=0;第2处:while(t!=0&&m!=0&&n!=0)应改为while(t!=0||m!=0||n!=0)第37题答案第1处:*r=t;应改为r=t;或r=&t[0];第2处:应填r=t;或r=&t[0];第38题答案第1处:t=x;x=y;应改为t=*x;*x=y;第2处:return(y);应改为return(t);或return t;第39题答案第1处:void fun(char s,char t)应改为void fun(char*s,char*t)第2处:t[2*d-1]='\0';应改为t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0;第40题答案第1处:for(i=j+1;i<n-1;i++)应改为for(i=j+1;i<n;i++)第2处:t=i;应改为p=i;第41题答案第1处:while(p->next)应改为while(p!=NULL)第2处:p=h->next;应改为p=p->next;第42题答案第1处:if(i%2&&s[i]%2==0)应改为if(i%2||s[i]%2==0)或if(i%2!=0||s[i]%2==0)第2处:t[i]='\0';应改为t[j]='\0';或t[j]=0;第43题答案第1处:k=n;应改为k=i;第2处:b=k/10;应改为b=k%10;第44题答案第1处:fun(int**a,int m)应改为voidfun(int(*a)[M],int m)第2处:a[j][k]=k*j;应改为a[j][k]=(k+1)*(j+1);第45题答案第1处:void fun(char*s,t1,t2,w)应改为voidfun(char*s,char*t1,char*t2,char*w)第2处:while(w)应改为while(*w)第46题答案第1处:fun(int n)应改为doublefun(int n)第2处:return sum应改为returnsum;第47题答案第1处:void fun(int*a,int n);应改为void fun(int*a,int n)第2处:m=0;应改为m=i;第48题答案第1处:fun(char(*sq)[N])应改为char*fun(char(*sq)[M])第2处:return sq;应改为return sp;第49题答案第1处:*t=malloc(sizeof(STU));应改为t=(STU*)malloc(sizeof(STU)*m);第2处:t[k].num=b[j].num;应改为strcpy(t[k].num,b[j].num);第50题答案第1处:t[i]=s[s1-i];应改为t[i]=s[s1-i-1];或t[i]=s[s1-1-i];第51题答案第1处:void fun(char str[][],int m,char*pt)应改为void fun(char str[][10],int m,char*pt)第2处:pt[i]=str[k,i];应改为pt[i]=str[k][i];第52题答案第1处:int fun(double x[],int n)应改为int fun(double x[],int n){第53题答案第1处:switch(g);应改为switch(g) 第2处:case 1;应改为case 1:第54题答案第1处:double fun(char*s,char*t)应改为char*fun(char*s,char*t)第2处:(*ss)++;应改为ss++;第3处:(*tt)++;应改为tt++;第55题答案第1处:y=0;应改为y=1;第2处:d=i-a;应改为d=a-i;第56题答案第1处:void fun(char(*pstr)[6])应改为void fun(char*pstr[6])第2处:if(strcmp(*(pstr+i),pstr+j)>0)应改为if(strcmp(*(pstr+i),*(pstr+j))>0)第3处:*(pstr+i)=pstr+j;应改为*(pstr+i)=*(pstr+j);第57题答案第1处:while(i>j)应改为while(i<j)或while(j>i)第2处:c=0;应改为*c='\0';或*c=0; 第58题答案第1处:for(i=0;i<=s1;i++)应改为for(i=0;i<s1;i++)第2处:t[s1]='\0';应改为t[2*s1]='\0'; 第59题答案第1处:void fun(char*s,int num[5]);应改为void fun(char*s,int num[5]) 第2处:num[i]=0;应改为num[k]=0; 第3处:switch(s)应改为switch(*s) 第60题答案第1处:if(i%k!=0)应改为if(i%k==0)第2处:if(k<i)应改为if(k>=i)第61题答案第1处:fun(int m)应改为double fun(int m)第2处:for(i=100,i<=m,i+=100)应改为for(i=100;i<=m;i+=100) 第62题答案第1处:break应改为break;第63题答案第1处:i=1;应改为i=0;第2处:while(i<3||*p)应改为while(i<3&&*p)第3处:b[k]='';应改为b[k++]='';第64题答案第1处:c=c-32;应改为c=c+32;第2处:c=c-5;应改为c=c+5;第65题答案第1处:void fun(long s,long t)应改为void fun(long s,long*t)第2处:s1=s1*100;应改为s1=s1*10;第66题答案第1处:fun(int n)应改为doublefun(int n)第2处:b+=c;应改为b=c;第67题答案第1处:fun(double a,double x0)应改为double fun(double a,double x0)第2处:if(abs(x1-x0)>=1e-6)应改为if(fabs(x1-x0)>=1e-6)第68题答案第1处:return 1;应改为return 3;第2处:return 3;应改为return 1;第69题答案第1处:void upfst(char p)应改为void upfst(char*p)第70题答案第1处:int fun(int*b);应改为intfun(int*b)第2处:for(k=10;k<=55;k++)应改为for(k=1;k<55;k++)第3处:return k;应改为return i;第71题答案第1处:if k>1应改为if(k>1)第72题答案第1处:int fun(char*str,*substr)应改为int fun(char*str,char*substr)第2处:for(i=0,str[i],i++)应改为for(i=0;str[i];i++)第73题答案第1处:t=1.0-1/i;应改为t-=1.0/i;或t=t-1.0/i;或t-=(double)1/i;第2处:应填return t;第74题答案第1处:c=aa[i];应改为ch=aa[i];第75题答案第1处:int fun(int m,int xx[][])应改为int fun(int m,int xx[][M])第2处:printf("%4f",xx[i][j]);应改为printf("%4d",xx[i][j]);第76题答案第1处:long s1=0;应改为long s1=1;第2处:s\=10;应改为s/=10;第77题答案第1处:void fun(char a)应改为voidfun(char*a)第78题答案第1处:k++应改为k++;第2处:if(m=k)应改为if(m==k)第79题答案第1处:c[t]="\0";应改为c[t]='\0';第80题答案第1处:fun(int n)应改为doublefun(int n)第2处:s=s+(Double)a/b;应改为s=s+(double)a/b;第81题答案第1处:fun(int n)应改为doublefun(int n)第2处:for(i=2;i<n;i++)应改为for(i=2;i<=n;i++)第82题答案第1处:result*=--n;应改为result*=n--;第2处:应填return result;第83题答案第1处:void fun(int x,int y)应改为void fun(int*x,int*y)第2处:t=x;x=y;y=t;应改为t=*x;*x=*y;*y=t;第84题答案第1处:void fun(int m,int k);应改为void fun(int m,int k)第2处:aa[i]=m/k;应改为aa[i]=m%k;第3处:printf("%d",aa[i]);应改为printf("%d",aa[i-1]);第85题答案第1处:s[j]=s[i];应改为s[j++]=s[i];第2处:s[i]='\0';应改为s[j]='\0';第86题答案第1处:float*k;应改为float k;第2处:if(*s<*p)应改为if(*s>*p)第87题答案第1处:void fun(int a)应改为voidfun(int a[M])或void fun(int a[])或void fun(int*a)第2处:a[j]=a[j+1];应改为a[j]=a[j-1];第88题答案第1处:for(i=0;i<=3;i++)应改为for(i=1;i<=3;i++)第2处:if(k>=1&&k<=6)应改为if(k>=0&&k<=6)*zero=count; 第89题答案第1处:for(i=1;i<y;i++)应改为for(i=1;i<=y;i++)第2处:t=t/1000;应改为t=t%1000;第90题答案第1处:d=0;应改为d=1;第2处:s=1;应改为s=0;第3处:s=s/10;应改为d=d/10;第91题答案第1处:for(i=strlen(t);i;i--)应改为for(i=strlen(t)-1;i;i--)或for(i=strlen(t)-1;i>0;i--)第2处:if(t[j]<t[j+1])应改为if(t[j]>t[j+1])第92题答案第1处:long s=0,t=1;应改为longs=0,t=0;第2处:for(j=0;j<=n;j++)应改为for(j=0;j<n;j++)第3处:t=t%10;应改为t=t/10;第93题答案第1处:while(t>=num)应改为while(fabs(t)>=num)第2处:t=s%n;应改为t=s/n;第94题答案第1处:int sum=0.0;应改为doublesum=0.0;第2处:sum\=c;应改为sum/=c;第95题答案第1处:s=s+(n+1)/n;应改为s=s+(double)(n+1)/n;第2处:return s;应改为return t;第96题答案第1处:fun(int k)应改为doublefun(int k)第2处:return s应改为return s;第97题答案第1处:f(double x)应改为doublef(double x)第2处:return s应改为return s;第98题答案第1处:#define FU(m,n)(m/n)应改为#define FU(m,n)(m)/(n)第2处:Return(value);应改为return(value);第99题答案第1处:int i,j,k,sum;应改为inti,j=0,k,sum;第2处:if(sum%4=2)应改为if(sum%4==2)第100题答案第1处:if(t=0)应改为if(t==0)第2处:zero=count;应改为。

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

第六十一套矩阵,要求非对角线上的元素赋值为0,对请补充main函数,该函数的功能是:输出一个N N角线元素赋值为1。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdlib.h>#include <stdio.h>#define N 10void main(){int bb[N][N];int I,j,n;system("CLS");printf(" \nInput n:\n");scanf("%d",&n);for(I=0;I<n;I++)for(j=0;j<n;j++){【1】;if(I==j)bb[I][j]=【2】;if(【3】)bb[I][j]=1;}printf(" \n***** the result ***** \n");for(I=0;I<n;I++){printf(" \n\n");for(j=0;j<n;j++)printf("%4d",bb[I][j]);}}【参考答案】(1) bb[i][j]=0 (2) 1 (3) j==n-1-i【考点分析】本题考查: 二维数组元素赋值。

【解题思路】填空1:本题的解题思路是先将所有元素置0,然后再将对角线上的元素置1,所以此空是先将当前元素置0。

填空2:如果当前元素的下标i和j相等,则此元素是主对角线元素,要将它赋值为1。

填空3:如果当前元素的下标i和j满足关系j==n-1-i,则此元素也是对角线元素,也要将它赋值为1。

【解题宝典】对于n*n二维数组,通过二维数组元素的下标来表示数组对角线上的元素,即数组的行列下标相等。

下列给定的程序中,fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的"单词"是指有空格隔开的字符串)。

例如,若输入:I am a student to take the examination则应输出:I aM A studenT tO takE thE examinatioN请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:#include <stdlib.h>#include <string.h>#include <conio.h>#include <ctype.h>#include <stdio.h>void fun(char *p){int k=0;for ( ;*p;p++)if (k){/*************found**************/if (p==' '){k=0;/*************found**************/*p=toupper( *(p-1));}}elsek=1;}void main(){char chrstr[64];int d;system("CLS");printf("\nPlease enter an English sentence within 63 letters: ");gets(chrstr);d=strlen(chrstr);chrstr[d]=' ';chrstr[d+1]=0;printf("\nBofore changing:\n %s",chrstr);fun(chrstr);printf("\nAfter changing:\n %s",chrstr);}【参考答案】(1)错误:if(p==' ') 正确:if(*p==' ')(1)错误:*p=toupper(*(p-1));正确:*(p-1)=toupper(*(p-1));【考点分析】本题考查:toupper函数的用法,该函数功能是将小写字母转换为大写字母;指针型变量。

【解题思路】本题比较简单,重点考查toupper函数的用法,该函数是将ch字符转换成大写字母,较多地应用了字符串处理函数。

请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。

例如,输入如下整数:876 675 896 101 301 401 980 431 451 777则输出结果为6,980。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:#include <conio.h>#include <stdio.h>#include <stdlib.h>int fun(int *s,int t,int *k){}void main(){FILE *wf;int a[10]={ 876,675,896,101,301,401,980,431,451,777},k;system("CLS");fun(a, 10, &k);printf("%d, %d\n ", k, a[k]);/******************************/wf=fopen("out.dat","w");fprintf (wf,"%d, %d", k, a[k]);fclose(wf);/*****************************/}【参考答案】int fun(int *s,int t,int *k)int i;*k=0;/*k所指的数是数组的下标值*/for(i=0;i<t;i++)if(s[*k]<s[i]) *k=i;/*找到数组的最大元素,把该元素的下标赋给k所指的数*/return s[*k];/*返回数组的最大元素*/}【考点分析】本题考查:数组下标;求数组中最大值的算法。

【解题思路】本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应让*k的值为数组中的某一下标值,即*k=0。

第六十二套矩阵的主对角线元素和反向对角线元素之和,并作给定程序中,函数fun的功能是:计算N N为函数值返回。

注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。

例如,若N=3,有下列矩阵:1 2 34 5 67 8 9函数fun首先累加1、5、9,然后累加3、5、7,函数的返回值为30。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdio.h>#define N 4/*************found**************/fun(int t[][N],int n){ int I,sum;【1】;for(I=0;I<n;I++)sum+=【2】;for(I=0;I<n;I++)sum+=t[I][n-I-【3】];return sum;}main(){ int i,j,t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10};printf("\nThe original data:\n");for(i=0;i<N;i++)for(j=0;j<N;j++)printf("%4d",t[i][j]);printf("\n");}printf("\nThe result is:%d",fun(t,N));}【参考答案】(1) sum=0 (2) t[i][i] (3) 1【考点分析】本题考查:变量初始化;n*n矩阵对角线下标的表示;累加操作。

【解题思路】填空1:显然,首先初始化和为0。

填空2:从例题中我们可以了解,主对角线元素的行和列下标是相同的,那么填入t[i][i]。

填空3:对于反向对角线元素的行和列的下标,它们的关系是相加和为n-1,应填入1。

下列给定程序中,函数fun的功能是:从整数1到55之间,选出能被3整除且有一位上的数是5的数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。

规定,函数中a1放个位数,a2放十位数。

请改正程序中的错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:#include <stdio.h>/*************found**************/int fun(int *b);{int k,a1,a2,I=0;/*************found**************/for(k=10;k<=55;k++){a2=k/10;a1=k-a2*10;if((k%3==0 && a2==5)|| (k%3==0 && a1==5)){b[I]=k;I++;}}/*************found**************/return k;}void main(){int a[100],k,m;m=fun(a);printf("The result is: \n");for(k=0;k<m;k++)printf("%4d",a[k]);printf("\n");}【参考答案】(1)错误:int fun(int *b); 正确:int fun(int *b) (2)错误:for (k=10;k<=55;k++)正确:for(k=1;k<=55;k++)(3)错误:return k; 正确:return i;【考点分析】本题考查:函数定义,需根据题意并按照其一般形式定义;指针型变量;for循环变量的取值范围;return语句。

【解题思路】(1)简单语法错误。

(2)从题目可知,选取的是1 55之间的数,所以应该从1开始判断。

(3)根据题意,返回能被3整除的数的个数,程序中由i来计算,所以返回的是i。

假定输入的字符串中只包含字母和*号。

相关文档
最新文档