计算机二级C语言上级复习题

合集下载

计算机二级C语言上机题库及答案(100套)

计算机二级C语言上机题库及答案(100套)

计算机二级c 语言上机题库及答案.第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 an integer number between 2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(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))编程题M 个人的成绩存放在score 数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。

计算机二级c语言上机考试100题

计算机二级c语言上机考试100题

题目1:下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。

请编写函数num(int m,int k,int xx[])实现函数的要求,最后调用函数readwriteDAT()把结果输出到文件out.dat中。

例如:若输入17,5,则应输出:19,23,29,31,37。

注意:部分源程序已给出。

请勿改动主函数main()和函数readwriteDAT()的内容。

--------------类型:素数。

void num(int m,int k,int xx[]){int data=m+1;int half,n=0,I;while(1){half=data/2;for(I=2;I<=half;I++)if(data%I==0)break;if(I>half){xx[n]=data;n++;}if(n>=k)break;data++;} }题目2:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 如果四位数各位上的数字均是0或2或4或6或8, 则统计出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存入数组b中。

最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意: 部分源程序存在文件PROG1.C文件中。

程序中已定义数组: a[200], b[200], 已定义变量: cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

-------------------------void jsVal(){int bb[4];int I,j,k,flag;for (I=0;I<200;I++){bb[0]=a[I]/1000; bb[1]=a[I]%1000/100;bb[2]=a[I]%100/10; bb[3]=a[I]%10;for (j=0;j<4;j++){if (bb[j]%2==0)flag=1;else{flag=0;break;}}if (flag==1){ b[cnt]=a[I];cnt++;} }for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if (b[I]<b[j]){k=b[I];b[I]=b[j];b[j]=k;}}题目3:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数STROR(),其函数功能是:以行为单位把字符串中的所有小写字母O左边的字符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT.DAT中.例如:原文:You can create an index on any field.you have the correct record.结果: n any field.You can create an indexrd.yu have the crrect rec原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.-------------------类型:字符串(单词)的倒置和删除。

计算机二级C语言上级复习题

计算机二级C语言上级复习题

一、1、程序填空题给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写在文本文件中,···填空:(1)FILE* (2)fclose(fp) (3)fp改错:(1)t=(STU *)calloc(sizeof(STU),m); (2)t[k]=b[j]; 编程:int i,t,j=0,*p=a;t=p[0];for(i=0;i<=n;i++)if(t=p[i]) ;else { a[j]=t; t=p[i]; j++;}if(i>=n) a[j]=t;return j;二、1、程序填空题给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。

·····。

填空:(1)1 (2)s (3)i*10改错:(1)int fun(int n,int xx[][M]);(2)printf(“%4d”,xx[i][j]);编程:*c=(a/10)*1000+(b%10)*100+(a%10)*1 0+(b/10);最后在黑色对话框中输入45 12后按回车键三、1、程序填空题给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,····填空:(1)999 (2)t/10 (3)x改错:(1)void fun(long s,long *t) (2)while(s>0)编程:(注意:此题在/*请按题目要求完成以下代码*/的下面填入答案)if(a[i].s < a[j].s){tmp=a[i]; a[i]=a[j]; a[j]=tmp; }四1、程序填空题给定程序中,函数fun的功能是:找出100至x(x<999)之间各位上的数字之和为15的所有整数,····填空:(1)0 (2)x (3)t++改错:(1)int i,s1; (2)t[i]=s[s1-1-i]; 编程:*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;最后在黑色对话框中输入45 12后按回车键五、1、程序填空题给定程序中,函数fun的功能是计算下式s=1/(2*2)+3/(4*4)+5/(6*6)+…+(2n-1)/(2n*2n)···填空:(1)0 (2)i++ (3)2.0*i改错:(1)void fun(char *s,char *t)(2)t[2*d]=‟\0‟;编程:int i,j=0;for(i=1;i<strlen(s);i+=2)if(i%2==1 && s[i]%2==1)t[j++]=s[i];t[j]= ‟\0‟;最后在黑色对话框中输入ABCDEFG123456后按回车六、1、程序填空题函数fun的功能是:统计长整数的各个位上出现数字1、2、3的次数,并通过外部(全局)变量c1、c2、c3返回主函数。

国家计算机二级c语言历年上机真题及基础知识

国家计算机二级c语言历年上机真题及基础知识

第一套1.填空题请补充main函数,该函数的功能是:从键盘输入一个字符串并保存在字符str1中,把字符串str1中下标为偶数的字符保存在字符串str2中并输出。

例如,当str1=“cdefghij”,则str2=“cegi”。

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

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

试题程序:#include<stdio.h>#include<conio.h>#define LEN 80main(){char str1[LEN],str2[LEN];char *p1=str1,*p2=str2;int i=0,j=0;clrscr();printf("Enter the string:\n");scanf(【1】);printf("***the origial string***\n");while(*(p1+j)){printf("【2】",*(p1+j));j++;}for(i=0;i<j;i+=2)*p2++=*(str1+i);*p2='\0';printf("\nThe new string is:%s\n",【3】);}答案及评析:【1】″%s″,str1【2】%c 【3】str2【解析】填空1:本题考查对标准输入函数scanf()的调用格式,当输入字符串时,格式控制字符串为″%s″,题目要求输入的字符串保存在str1中,所以地址表列应为字符串的首地址,即为str1。

填空2:本题考查对标准输出函数printf()的调用格式,当输出为字符型变量时,格式控制字符串为″%c″。

填空3:题目要求将str1中下标为偶数的字符保存在字符串str2中并输出,所以printf()函数的输出表列是str22. 改错题在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。

全国计算机等级考试二级C语言上机题库(全)

全国计算机等级考试二级C语言上机题库(全)

第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。

函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。

/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套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语言试题及答案

国家二级计算机考试c语言试题及答案

国家二级计算机考试c语言试题及答案国家二级计算机考试C语言试题及答案一、选择题(本大题共10小题,每小题2分,共20分。

每小题只有一个正确答案。

)1. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable2C. variable2!D. _variable2答案:D3. C语言中,用于表示逻辑“与”的运算符是?A. &&B. ||C. !D. =答案:A4. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A5. 下列哪个选项是正确的C语言注释?A. // This is a single line commentB. /* This is a single line comment */C. // This is a multi-line commentD. /* This is a multi-line comment */答案:A6. 在C语言中,以下哪个选项是正确的数组声明?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3};C. int arr[5] = {1, 2};D. int arr = {1, 2, 3};答案:A7. C语言中,用于计算两个整数相加的函数是?A. strcatB. strcmpC. strcpyD. sum答案:D(注:sum不是C语言标准库函数,此处假设为自定义函数)8. 下列哪个选项是C语言中的合法常量?A. 0x1AB. 1.23e5C. 123.45D. All of the above答案:D9. C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. typedef答案:A10. 在C语言中,哪个关键字用于声明一个指针?A. intB. charC. floatD. *答案:D二、填空题(本大题共5小题,每小题2分,共10分。

计算机二级C语言上机题库及答案(100套)

计算机二级C语言上机题库及答案(100套)

~计算机二级c 语言上机题库及答案内部资料,切勿外传!.第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 an integer number between 2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(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))编程题M 个人的成绩存放在score 数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。

全国计算机等级考试二级C语言【附详解】

全国计算机等级考试二级C语言【附详解】

是对顺序队列的改进,故循环队列是队列的一种顺序存储结正确的是
A、栈是一种先进先出的线性表 B、队列是一种后进先出的线性表 C、栈和队列都是非线性结构 D、以上三种说法都不对
栈是一种后进先出的线性表
队列是一种先进先出的线性表,二者均是线性结构,
答案为选项D。
ppt课件
4
一棵二叉树共有25个节点,其中5个是子节点,那么度为1的节
一个C程序有且只有一个主函数 main()。
一个C 程序可以包含多个不同名字的子函数
C程序在书写时没有严格的缩进要求。
ppt课件
16
设有以下语句 Char ch1,ch2, scanf(”%c%c”,&ch1,&ch2); 若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是 A、A和B之间用逗号间隔 B、A和B之间不能有任何间隔符 C、A和B之间可以用回车间隔 D、A和B之间用空格间隔
软件详细设计- - 程序流程图(PDF)和PAD(问题分析图)是过程设计的常 用工具 数据流图(DFD图 ) 是 软 件 定 义 阶 段 结 构 化 分 析 方 法 常 用 的 工 具 。
ppt课件
12
针对简单程序设计,以下叙述的实施步骤正确的是 A、确定算法和数据结构、编码、调试、整理文档 B、编码、确定算法和数据结构、调试、整理文档 C、整理文档、确定算法和数据结构、编码、调试 D、确定算法和数据结构、调试、编码、整理文档
在输入格式中定义好了”%c%c”,其中没有任何符号,所以中间不能加任何字符,包 含不能加逗号、回车和空格,因为这些也算是字符。
ppt课件
17
以下选项中非法的字符常量是 A、’\102’ B、’\65’ C、’\xff’

全国计算机等级考试二级C语言上机考试题库100道

全国计算机等级考试二级C语言上机考试题库100道
1 if((k%13==0││(k%17==0))
2 }
3. 请编写函数fun,它的功能是:求小于形参n同时能被3和7整除的所有自然数之和的平方根,并作函数的返回值。
double sum=0.0;
int i;
for(i=21;i<=n;i++)
if((i%3= =0)&&(i%7= =0))sum
1 *n 2 next 3 head
2. 给定程序MODI1.C中函数fun的功能是:求出s所指字符串最后一次出现的t所指字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值NULL。
1 a=NULL; 2 if(*r==*p)
2. 给定程序MODI1.C中函数fun的功能是:按以下递推公式求函数值。例如,当给n输出5时,函数值为18;当给n输入3时,函数值为14.
1 fun(int n) 2 if(n==1)
3. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。
2给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母顺序的后续字母(但Z转化成A,z转换为a),其它字符不变。
1 while(*s) 2 s++;
3 请编写函数fun,函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~p(含p,p小于 等于n-1)的数组元素平移到数组的最后。
1 N 2 substr 3 0
2. 给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。

全国计算机等级考试二级C语言上机考试题库及答案

全国计算机等级考试二级C语言上机考试题库及答案

第1套一、填空给定函数的功能是调用fun 函数建立班级通讯录。

通讯录记录每位学生的编号,姓名和电话号码。

班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为答案yfile5.dat的二进制文件中。

答案:1. STYPE 2. FILE3. fp二、修改先将在字符串s中的字符按正序存放到t串中,然后把s 中的字符按逆序连接到t串后面。

答案:1. for(i = 0 ; i < sl ;i++) 2. t[2*sl] =` 0`; 三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。

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

*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);第2套一、填空从键盘输入若干行文本(每行不超过80个字符),写到文件答案yfile4.txt中,用-1作为字符串输入结束的标记。

然后将文件的内容读出显示在屏幕上。

文件的读写分别有自定义函数ReadText 和WriteText实现。

答案:*fw str str 二、修改从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。

答案:long *t sl =sl*10;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。

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

*c=(b/10)*1000+(a%10)*100+(b%10)*10 +(a/10);第3套一、填空将自然数1~10以及它们的平方根写到名为答案yfile3txt的文本文档中,然后再顺序读出显示在屏幕上。

答案:(1)fp (2)fclose(fp)(3)fname二、修改将n个无序整数从小到大排序。

答案:for(i=j+1;i<n;i++)p=i;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。

计算机等级考试二级C语言超级经典400道题目

计算机等级考试二级C语言超级经典400道题目

计算机等级考试二级C语言超级经典400道题目1、C语言程序的基本单位是____ A) 程序行 B) 语句 C) 函数 D) 字符、C、12、C语言程序的三种基本结构是____ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构、A、13、C语言规定,程序中各函数之间 A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用、A、14、C语言中可处理的文件类型是( ) A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件、B、15、C语言可执行程序的开始执行点是( ) A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数、C、16、C语言提供的合法的数据类型关键字是 A)double B) short C) integer D) char、B、17、C语言中,运算对象必须是整型数的运算符是 A) % B) \ C) %和\ D) * *、A、18、C语言中函数返回值的类型是由( )决定。

A) return语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型、D、19、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。

A、该数组的长度。

B、该数组的元素个数。

C、该数组中各元素的值。

D、该数组的首地址。

、D、110、C语言中数组下标的下限是________。

A、1 B、0 C、视具体情况 D、无固定下限、B、111、C语言中提供的合法关键字是____ A、swith B、cher C、case D、default、D、112、C语言中文件的存取方式是________。

二级C语言上机考试复习资料,共有50套题目

二级C语言上机考试复习资料,共有50套题目

二级C语言上机考试复习资料,共有50套题目一、程序填空题1、给定程序中,函数f un的功能是根据形参i的值返回某个函数的值。

当调用正确时, 程序输出:x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!#include <stdio.h>double f1(doubl e x){ return x*x; }double f2(doubl e x, double y){ return x*y; }/**********f ound**********/__1__ f un(int i, double x, double y){ if (i==1)/**********f ound**********/return __2__(x);else/**********f ound**********/return __3__(x, y);}main(){ double x1=5, x2=3, r;r = f un(1, x1, x2);r += f un(2, x1, x2);printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n\n",x1, x2, r);}2、程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。

函数f un的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!#include <stdio.h>#include <string.h>struct student {long sno;char name[10];f loat score[3];};void f un(struct student a[], int n){/**********f ound**********/__1__ t;int i, j;/**********f ound**********/f or (i=0; i<__2__; i++)f or (j=i+1; j<n; j++)/**********f ound**********/if (strcmp(__3__) > 0){ t = a[i]; a[i] = a[j]; a[j] = t; }}main(){ struct student s[4]={{10001,"ZhangSan", 95, 80, 88},{10002,"LiSi", 85, 70, 78},{10003,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87}};int i, j;printf("\n\nThe original data :\n\n");f or (j=0; j<4; j++){ printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name);f or (i=0; i<3; i++)printf("%6.2f ", s[j].score[i]);printf("\n");}f un(s, 4);printf("\n\nThe data af ter sorting :\n\n");f or (j=0; j<4; j++){ printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name);f or (i=0; i<3; i++)printf("%6.2f ", s[j].score[i]);printf("\n");}}3、给定程序中,函数f un的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y 所指数组中,在主函数中输出。

全国计算机等级考试二级c语言上机题库

全国计算机等级考试二级c语言上机题库

全国计算机等级考试二级c语言上机题库【例1】给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。

例如,输入一个数:27638496,新的数:为739。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!给定源程序:#includevoidfun(unsignedlong*n){unsignedlongx=0,i;intt;i=1;while(*n){t=*n%__1__;if(t%2!=__2__){x=x+t*i;i=i*10;}*n=*n/10;}*n=__3__;}main(){unsignedlongn=-1;while(n>99999999||n<0){printf("Pleaseinput(0fun(&n);printf("\Theresultis:%ld\",n);}解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。

第二处:判断是否是奇数,所以应填:0。

第三处:最后通形参n来返回新数x,所以应填:x。

给定程序MODI1.C中函数fun的功能是:计算n!。

例如,给n输入5,则输出120.000000。

【例2】请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#includedoublefun(intn){doubleresult=1.0;ifn==0return1.0;while(n>1&&n<170)result*=n--returnresult;}main(){intn;printf("InputN:");scanf("%d",&n);printf("\\%d!=%lf\\",n,fun(n));}解题思路:第一处:条件语句书写格式错误,应改为:if(n==0)。

全国计算机二级C语言各章节复习题

全国计算机二级C语言各章节复习题

全国计算机⼆级C语⾔各章节复习题第⼀章C语⾔概述略第2章程序的灵魂----算法⼀、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有⼀个选项是正确的,请将正确选项填涂在答题卡相应位置上。

)2.1以下叙述中正确的是A)C语⾔⽐其他语⾔⾼级B)C语⾔可以不⽤编译就能被计算机识别执⾏C)C语⾔以接近英语国家的⾃然语⾔和数学语⾔作为语⾔的表达形式D)C语⾔出现的最晚,具有其他语⾔的⼀切优点正确答案: C2.2 以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在⼀个函数中定义另⼀个函数C)main()函数必须放在其他函数之前D)所有被调⽤的函数⼀定要在调⽤之前进⾏定义声明正确答案: A2.3 以下说法正确的是A)C语⾔程序总是从第⼀个的函数开始执⾏B)在C语⾔程序中,要调⽤函数必须在main()函数中定义C)C语⾔程序总是从main()函数开始执⾏D)C语⾔程序中的main()函数必须放在程序的开始部分正确答案: C2.4 C语⾔规定,在⼀个源程序中,main函数的位置A)必须在最开始B)必须在系统调⽤的库函数的后⾯C)可以任意D)必须在最后正确答案: C2.5 以下叙述不正确的是A)⼀个C源程序可由⼀个或多个函数组成B)⼀个C源程序必须包含⼀个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于⼀条语句的后⾯任意位置正确答案: D2.6 下列叙述中正确的是A)C语⾔编译时不检查语法B)C语⾔的⼦程序有过程和函数两种C)C语⾔的函数可以嵌套定义D)C语⾔的函数可以嵌套调⽤正确答案: D2.7 以下叙述正确的是A)在C程序中,每⾏中只能写⼀条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,⽆论是整数还是实数,都能被准确⽆误地表⽰D)在C程序中,%是只能⽤于整数运算的运算符正确答案: D2.8 以下说法错误的是A)⼀个算法应包含有限个步骤B)在计算机上实现的算法是⽤来处理数据对象的C)算法中指定的操作,不能通过已经实现的基本运算执⾏有限次后实现D)算法的⽬的是为了求解正确答案: C2.9 算法是指为解决某个特定问题⽽采取的确定且有限的步骤,下⾯不属于算法的五个特性的是A)有零个输⼊或多个输⼊B)⾼效性有效性C)有穷性D)确定性正确答案: B2.10 下列关于C语⾔的说法不正确的是A)C语⾔既具有⾼级语⾔的⼀切功能,也具有低级语⾔的⼀些功能B)C语⾔中的每⼀条执⾏语句都必须⽤分号结束,分号不是C语⾔的⼀部分,是语句之间的分隔符号C)注释可以出现在程序中任意合适的地⽅D)命令⾏后⾯不能加分号,命令⾏不是C语⾔的语句正确答案: B2.11 以下说法错误的是A)⾼级语⾔都是⽤接近⼈们习惯的⾃然语⾔和数学语⾔作为语⾔的表达形式B)计算机只能处理由0和1的代码构成的⼆进制指令或数据C)C语⾔源程序经过C语⾔编译程序编译之后⽣成⼀个后缀为.EXE(c)的⼆进制⽂件D)每⼀种⾼级语⾔都有它对应的编译程序正确答案: C2.12 C语⾔中⽤于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,break C)for,while,do-while D)if,for,continue 正确答案: A⼆、填空题(请将每⼀个空的正确答案写在答题卡相应序号后。

2020年全国计算机等级考试二级c语言上机精选题库(共50套)

2020年全国计算机等级考试二级c语言上机精选题库(共50套)

2020年全国计算机等级考试二级c语言上机精选题库(共50套)第1套题一、填空题请补充main函数,该函数的功能是:计算每个学生科目的平均分,并把结果保存在数组bb中。

例如,当score[N][M]={{78.5,84,83,65,63},{88,91.5,89,93,95},{72.5,65,56,75,77 }}时,三个学生的平均分为:74.7 91.3 69.1。

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

#include <stdio.h>#define N 3#define M 5main(){int i, j;static float score[N][M] ={{78.5, 84, 83, 65, 63},{88, 91.5, 89, 93, 95},{72.5, 65, 56, 75, 77}};float bb[N];for (i=0; i<N; i++)___1___;for (i=0; i<N; i++){for (j=0; j<M; j++)___2___;bb[i] /= M;}for (i=0; i<N; i++)printf("\nstudent%d\taverage=%5.1f", i+1, bb[i]); } 二、 改错题下列给定程序中,函数fun 的功能是:根据整型行参m ,计算如下公式的值。

y=mm ⨯++⨯+⨯+⨯1300300120020011001001 例如,若m=2000,则应该输出:0.000160。

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

#include <conio.h>#include <stdio.h>/********found********/fun(int m){double y = 0, d;int i;/********found********/for (i=100, i<=m, i+=100){d = (double)i*(double)i;y += 1.0/d;}return (y);}main(){int n = 2000;printf("\nThe result is %lf\n", fun(n));}三、编程题请编写函数fun,该函数的功能是:统计个年龄段的人数。

最新全国计算机等级考试二级C语言-题库(全)

最新全国计算机等级考试二级C语言-题库(全)

份全国计算机等级考试二级C语言题库(全)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一行称为元组,每一个列称为属性D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF CaseD)2a, DO, sizeof 标识符由数字、字母、下划线组成,开头不能为数字(13)以下选项中可作为C语言合法常量的是A)-80 B)-080 C)-8e1.0 D)-80.0e e后为整数(14)若有语句:char *line[5];,以下叙述中正确的是A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是A)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b;(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}A)409 B)277 C)1 D)91 (18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1(21)下列程序的输出结果是#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4}; (25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd(26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是A)69825 B)63825 C)6385 D)693825(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]); (28)以下叙述中错误的是A)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名B)PER是结构体类型名C)typedef struct 是结构体类型D)struct 是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′}; C)char a={′A′,′B′,′C′}; D)int a[5]="0123";(32)有以下程序#include<string.h>main(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include <stdio.h>#include <string.h>{for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main()fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>int f(int x){ int y;if(x==0||x==1) return(3);-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67 B)0 C)字符′C′的地址D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*n=0; for(i=7;i<=m;i++) if((i%7 == 0) || (i%11 == 0)) a[(*n)++]=i; 十二、1、程序填空题 给定程序中,函数 fun 的功能是:将形参 std 所指结构体数组中年龄最大者的数 据作为函数值返回,并在 main 函数中 输出。
填 空 : (1)*std
(2)std[i].age
(3)
改 错 : (1)void fun(int *a,int *b)
(2)t=*b;*b=*a;*a=t;
编程:int i,j,min,k;
for(i=0;i<N;i++)
{ min=tt[0][i];k=0;
for(j=1;j<M;j++)
if(tt[j][i]<min)
个字符串按长度由短到长进行排
序。····
填空:(1)i+1 (2) k=j (3) t
改错:(1)void fun (char *str,char
ch)
(2) if(*str!=ch) (是不等号)
(3) str[1]=’\0’; ( 少 了 一 个 反 斜
杠) 编程: char b[N]={0};
编程:(注意:此题在/*请按题目要求完
成以下代码*/的下面填入答案)
if(a[i].s < a[j].s)
{tmp=a[i];
a[i]=a[j];
a[j]=tmp; }
四 1、程序填空题
给定程序中,函数 fun 的功能是:找出
100 至 x(x<999)之间各位上的数字之
和为 15 的所有整数,····
t[j]=’\0’; 最后在黑色对话框中输入 ABCDEFG12345 后按回车键 十一、1、程序填空题 给定程序中已建立一个带有头结点的 单向链表,····函数 fun 的功能是:删 除链表中数据域值相同的结点,使之只 保留一个。 填空:(1)q (2)next (3) next 改 错 : (1);( 少 了 分 号 ) (2) {p=j;t=a[p];a[p]=a[i];a[i]=t;} 编程:int i;
int i=0 ,j;
for(j=strlen(s)-1;
j>=0;j--)
b[i++]=s[j];
strcpy(s,b);
最后在黑色对话框中输入 abcdefg
后按回车键
二十一 1.程序填空题 给定程序通过定义并赋初值的方式,利
用结构体变量存储了一名学生的学号
姓名 和 3 门课的成绩。··
填空:(1)STU (2)score[i] (3)&std
十八、1、程序填空题
给定程序中,函数 fun 的功能是将形参给
定的字符串、整数、浮点数写到文本文
件中,·····。
填空:(1)FILE* (2)fp (3)ch 改错:(1)s[j++]=s[i]; (2)s[j]=’\0’;(双 引号改成引号) 编程:(注意:这道题是在/*请填写相应 语句完成其功能*/下面的大括号中填入 答案)
{ if (*(s+i) < *(s+j) )
{ ch=*(s+j); *(s+j)= *(s+i);
*(s+i) = ch;}
}
最后在黑色对话框中输入 CEAedca 后
按回车键
十五、1、程序填空题
函数 fun 的功能是:计算 f(x)=1+x+x2
∕2!+…+xn/n! 直到∣xn/n!∣<10-6 若
t=p[0];
for(i=0;i<=n;i++)
if(t=p[i]) ;
else { a[j]=t; t=p[i]; j++;}
if(i>=n) a[j]=t;
return j;
二、1、程序填空题
给定程序中,函数 fun 的功能是:将形参
n 中,各位上为偶数的数取出,并按原
来从高位到低位的顺序组成一个新的
给定程序中,函数 fun 的功能是:在任意
给定的 9 个正整数中找出按升序排列时
处于中间的数,将原数据序列中比该中
间数小的数用该中间数替换,·····
填空:(1)b[k] (2)N/2 (3)<
改 错 : (1)int t[N],i,num=0;
(2)t[num++]=b[i];
(3)for(i=0;i<num;i++)
s=1/ ( 2*2 ) +3/ ( 4*4 )
+5/(6*6)+…+(2n-1)/(2n*2n)···
填空:(1)0 (2)i++ (3)2.0*i
改 错 : (1)void fun(char *s,char *t)
(2)t[2*d]=’\0’;
编程:int i,j=0;
for(i=1;i<strlen(s);i+=2)
x=2.5,函数值为:12.182494。
填空:(1)x (2)n (3)t
改 错 : (1)d=1;s=0; (2)d=d/10;( 是 除
号)
编程:int i;
double s=0;
for(i=0;i<8;i++)
s+=sqrt((x[i]+x[i+1])/2);
return s;
十六、1、程序填空题
参 ss 所指字符串数组中最长字符串的
长度,将其余字符串右边用字符*补
齐,······
填空:(1)ss[i] (2)j+n (3)1
改错:(1)if(*p == ‘’ ) (2);(后面缺少分
号)
编程:char ch;
int i,j;
for(i=1;i<6;i++)
for(j=i+1;j<6;j++)
改 错 : (1)result*=n--; (2)return
result;(把横线改成 result)
编程:char *p=s;
int i=0;
while(*p)
{
if(*p!=c) s[i++]=*p;
p++; }
s[i]=’\0’;
最后在黑色对话框中输入 n 后按回车键
十四、1、程序填空题
给定程序中,函数 fun 的功能是:求出形
if(i%2==1 && s[i]%2==1)
t[j++]=s[i];
t[j]= ’\0’;
最后在黑色对话框中输入
ABCDEFG123456 后按回车
六、1、程序填空题
函数 fun 的功能是:统计长整数的各个 位上出现数字 1、2、3 的次数,并通过
外部(全局)变量 c1、c2、c3 返回主函
数。·····
编程:int fun(char *s)
{ int n=0;
while(*s)
{ if (*s>=’0’ && *s<=’9’)
s++;}
return n;
}
十七、1、程序填空题
给定程序中,函数 fun 的功能是:统计整
型变量 m 中各数字出现的次数,并存放
到数组 a 中,其中:a[0]存放0出现的
次数,a[1]存放1出现的次数,……
(2)ss++; (3)tt++; 编程:int i;
for(i=0;i<m;i++) fun1(w); 最后在黑色对话框中输入 3 后按回车键 九、1、程序填空题 函数 fun 的功能是:从三个形参 a,b, c 中找出中间的那个数,作为函数值返 回。···· 填空:(1)a (2)a (3)b 改错:(1)c=c+32;(把大写 C 改成小写) (2)c=c+5; 编程:int i; double fac=1.0; double sum=1.0; for(i=2;i<=n;i++) { fac+=sqrt(i); sum+=fac; } 最后在黑色对话框中输入 20 后按回车 键 十、1、程序填空题 给定程序中,函数 fun 的功能是,将形参 s 所指字符串中的字母字符顺序前 移,····· 填空:(1)s[i] (2)k (3)0 改错:(1)while(*w) (2)if(*r==*p) 编程:int i,j=0; for(i=0;i<strlen(s);i++) if(!(s[i]%2)) t[j++]=s[i];
最后在黑色对话框中输入 45 12 后按
回车键
八、1、程序填空题
给定程序中,函数 fun 的功能是根据形参 i 的值返回某个函数的值。当调用正确
时, 程序输出
x1=5.000000,
x2=3.000000, x1*x1+x1*x2=40.000000
填空:(1)double (2)f1 (3)f2
改 错 : (1)char *fun(char *s,char *t)
给定程序中,函数 fun 的功能是:统计出
带有头结点的单向链表中结点的个数,
存放在形参 n 所指的存储单元中。
填空:(1)*n (2)next (3)head 改错:(1)a=NULL; (2)if(*r==*p)



*c=(a%10)*1000+(b/10)*100+(a/10)*10
相关文档
最新文档