计算机二级C语言题库之程序填空

合集下载

计算机二级c语言填空改错题库..

计算机二级c语言填空改错题库..

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

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

第一处 struct student t;第二处 for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name) >0)2程序修改/**found**/q=p+i;/**found**/while(q>p)第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。

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

第一处 free(q);第二处 q=p->next;第三处 q=q->next;2.程序修改/**found**/p=j;/**found**/p=i;第三套1. 程序填空函数fun的功能是:逆置数组元素是的值。

例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。

形参n给出数组中数组中数据的个数。

第一处 for(i=0;i<n/2;i++)第二处 a[i]=a[n-1-i];第三处 a[n-i-1]=t;2程序修改/**found**/n=*p-‘0’;/**found**/n=n*8+*p-‘0’;第四套1.程序填空给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。

找到后通过函数值返回该结点在链表中所处的顺序号:若不存在值为ch的结点,函数值返回0.第一处 while(p!=0)第二处if(p->data==ch)return n;第三处 k=fun(head,ch);2. 程序修改/**found**/for(i=0,t=0;p[i];i++)/**found**/c[t]=’\0’;第五套1. 程序填空给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。

计算机等级考试二级C语言程序填空题(一)

计算机等级考试二级C语言程序填空题(一)

一、函数fun的功能是:不断从终端读入整数k,用变量a统计大于0的个数,用变量b来统计小于0的个数,当输入0时结束输入,并通过形参px和py把统计的数据传回主函数进行输出。

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

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

试题程序:#include <stdio.h>void fun(int *px,int *py){int ________; // 【1】scanf("%d",&k);while (________) // 【2】{if (k>0) a++;else b++;________; // 【3】}*px=a; *py=b;}int main(){int x,y;fun(&x,&y);printf("x=%d,y=%d\n",x,y);return 0;}参考答案:【1】a=0,b=0,k【2】k!=0 (或k)【3】scanf("%d",&k)解析:函数中有3个局部变量,且a和b需要赋初值0,因此,【1】处填写“a=0,b=0,k”。

循环输入数据的结束条件为K==0,故【2】处填写“k!=0”。

循环中处理了输入的数据后,需要再输入下一个数据,故【3】处填写“scanf("%d",&k)”。

二.请补充main()函数,该函数的功能是:输入两个正整数num1和num2,求这两个数的最大公约和最小公倍数。

例如,若输入的两个正整数为12,24,则它们的最大公约数为12,最小公倍数为4。

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

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

试题程序:#include <stdio.h>int main(){int a,b,num1,num2,t;printf("\nInput two numbers:\n");scanf("%d %d",&num1,&num2);a=num1;b=num2;while (________) //【1】{t=________; //【2】a=b;b=t;}printf("Greatest common divisor:%d\n",a);printf("Least common multiple:%d\n",________); // 【3】return 0;}参考答案:【1】b!=0 【2】a%b 【3】num1*num2/a解析:采用辗转相除法求两个整数a和b的最大公约数。

计算机二级C语言程序填空题及答案解析精选

计算机二级C语言程序填空题及答案解析精选
【3.6】下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while( ① ) { if(x>amax) amax=x; if( ② ) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); }
【3.9】下面程序的功能是统计用 0 至 9 之间的不同的数字组成的三位数的个数。 main() { int i,j,k,count=0; for(i=1;i<=9;i++) for(j=0;j<=9;j++) if( ① ) continue; else for(k=0;k<=9;k++) if( ② ) count++; printf("%d",count); }
【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include double pi(long n) { double s=0.0; long i; for(i=1;i<=n;i++) s=s+ ① ; return( ② ); }
【3.3】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p<T;P++) if(s[p]<S[*K]) ①; } main() { int a[10],i,*k=&i; for(i=0;i<10;i++) scanf("%d",&a[i]); findmin(a,10,k); printf("%d,%d\n",*k,a[*k]); }

计算机二级考试C语言练习题及答案

计算机二级考试C语言练习题及答案
typedefstruct{intn;charc;}REC;RECtl,t2;
structRECctREC;{intn=0;charc='A';}tl,t2;
D.struct{intn;charc;}REC;RECtl,t2;
正确答案:A 答案解析:定义结构体类型的一般形式为:StrUCt结构体名{成员列表};StrUCt结构体名后不能加〃;〃号,所以选 项B、C)错误,选项D中定义无名称的结构体类型同时定义结构体变量形式应为StrUett1,t2;选项A为用户自定义类型 ,其为正确的定义形式。
.若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是() A.一对一 B.一对多
C.多对一 D.多对多 正确答案:B
答案解析:由于B和C有一一对应的联系,而A和B只间有一对多的联系,则通过关系之间的传递,则A和C之间 也是一对多的联系。
.关于C语言的变量,以下叙述中错误的是() A.所谓变量是指在程序运行过程中其值可以被改变的量
B.变量所占的存储单元地址可以随时改变 C.程序中用到的所有变量都必须先定义后才能使用
D.由三条下划线构成的符号名是合法的变量名
正确答案:B
答案解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。 在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但 是其值可以变化。变量命名要符合标识符的规定,其中下划线是标识符的组成字符。程序中所有变量都必须先定义 后使用。
【参考答案】⑴a[i](2)a[j](3)a[j]
【考点分析】
本题考查:数组的引用;if语句条件表达式,如果表达式的值为真,则执行下面的语句,如果该值为假,财不执 行下面的语句。

3月全国计算机等级考试二级C语言上机题库(20~30套)

3月全国计算机等级考试二级C语言上机题库(20~30套)

3月全国计算机等级考试二级C语言上机题库(20~30套)考试频道小编收集整理计算机等级考试资料,免费提供给大家交流参考。

第二十一套1. 程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。

ss所指字符串数组中共有N个字符串,且串小于M。

第一处void fun(char (*ss)[M], int k)第二处while (i第三处ss[i][k]=0;i++;}2. 程序修改给定程序MODI1.C中函数fun的功能是:根据以下公式求值,并作为函数值返回。

例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。

/**found**/t=1;/**found**/return(2*s);3. 程序设计假定输入字符串中只包含字母和*号。

请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。

函数fun中给出的语句仅供参考。

void fun(char*a,int n){int i=0,k=0;while(a[k]= =*)k++;if(kn){i=n;j=k;for(;a[j]!=0;j++)a[i++]=a[j];a[i]=0;}}第二十二套1. 程序填空给定程序中,函数fun的功能是:a所指43矩阵中第k行的元素与第0行元素交换。

例如:有下列矩阵1 2 34 5 67 8 910 11 12若k为2,程序执行结果为7 8 94 5 61 2 310 11 12第一处void fun(int (*a)[N],int k)第二处for(i=0;i第三处a[0][i]=a[k][i];2. 程序修改给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度20),将该字符串中的所有字符串按ASCII码升序排序后输出。

计算机二级C语言操作题高频考卷(四)

计算机二级C语言操作题高频考卷(四)

一、程序填空题1 [填空题]函数fun的功熊是:输出a所指数组中的前a个数据,要求每行输出5个数。

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

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

不得增行或删行,也不得更改程序的结构!试题程序:参考解析:【参考答案】【解题思路】填空1:每行输出5个数,即当下标值能整除5时换行。

填空2:输出换行符'\n'。

填空3:输出数组元素。

二、程序修改题2 [简答题]下列给定程序中,函数fun的功能是:将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在W所指的数组中。

要求t1和t2所指字符串的长度相同。

例如,当s所指字符串中的内容为“abcdabfabc”,t1所指串中的内容为“ab”,t2所指子串中的内容为“99”时,结果在W所指的数组中的内容应为“abcdabf99c”。

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

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:参考解析:【参考答案】【解题思路】(1)此处要判断的是值的真假,而不是地址,所以改为while( * w)。

(2)c语言中关键字区分大小写,只需运行程序,就可以根据错误提示找到。

三. 程序设计题3 [简答题]请编写函数fun,其功能是:判断t所指字符串中的字母是否由连续递增字母序列组成(字符串长度大于等于2)。

例如字符串:uvwxyz满足要求;而字符串:uvxwyz不满足要求。

注意:部分源程序存放在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部位填入所编写的若干语句。

试题程序:参考解析:【参考答案】【解题思路】函数fun的功能是判断指针t指向的字符串是否是由连续递增的字母构成,返回值为整数,0代表不满足条件。

根据题目要求,字符串长度必须大于等于2,所以首先需要对t指向的字符串进行长度判断,小于2的字符串返回0。

计算机二级C语言上机程序填空题

计算机二级C语言上机程序填空题
{ int i,s;
/**********found**********/
for(___2___; i++)
{ s=t[i][i];
t[i][i]=t[i][n-i-1];
/**********found**********/
t[i][n-1-i]=___3___;
}
}
main()
{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
double f1(double x)
{ return x*x;ouble y)
while(t<=__2__)
{ s1=t%10; s2=(t/10)%10; s3=t/100;
if(s1+s2+s3==15)
{ printf("%d ",t);
n++;
}
/**********found**********/
__3__;
}
return n;
}
main()
{ int x=-1;
while(x>999||x<0)
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
int fun(int x)
{ int n, s1, s2, s3, t;
/**********found**********/

3月全国计算机等级考试二级C语言上机题库(20~30套)

3月全国计算机等级考试二级C语言上机题库(20~30套)

3月全国计算机等级考试二级C语言上机题库(20~30套)3月全国计算机等级考试二级C语言上机题库(20~30套)考试频道小编收集整理计算机等级考试资料,免费提供给大家交流参考。

第二十一套1. 程序填空给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删去,只保留左边的k个字符。

ss所指字符串数组中共有N个字符串,且串小于M。

第一处void fun(char (*ss)[M], int k)第二处while (i第三处ss[i][k]=0;i++;}2. 程序修改给定程序MODI1.C中函数fun的功能是:根据以下公式求值,并作为函数值返回。

例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。

/**found**/t=1;/**found**/return(2*s);3. 程序设计假定输入字符串中只包含字母和*号。

请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。

函数fun中给出的语句仅供参考。

void fun(char*a,int n){int i=0,k=0;while(a[k]= =*)k++;if(kn){i=n;j=k;for(;a[j]!=0;j++)a[i++]=a[j];a[i]=0;}}第二十二套1. 程序填空给定程序中,函数fun的功能是:a所指43矩阵中第k行的元素与第0行元素交换。

例如:有下列矩阵1 2 34 5 67 8 910 11 12若k为2,程序执行结果为7 8 94 5 61 2 310 11 12第一处void fun(int (*a)[N],int k)第二处for(i=0;i第三处a[0][i]=a[k][i];2. 程序修改给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度20),将该字符串中的所有字符串按ASCII码升序排序后输出。

二级C语言 填空题 题库

二级C语言 填空题 题库

全国计算机等级考试C语言――填空题♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣注意:源程序存放在考生文件夹下的BLANK1.C中。

1.不得增行或删行,也不得更改程序的结构!2.请在程序下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣1.给定程序中,函数FUN的功能是:计算出带有头接点的单向链表中各结点数据域之和作为函数值返回。

#include <stdio.h>#include <stdlib.h>#define N 8typedef struct list{ int data;struct list *next;} SLIST;SLIST *creatlist(int *);void outlist(SLIST *);int fun( SLIST *h){ SLIST *p; int s=0;p=h->next;while(p){/**********************************found*********************************/s+= p->___1___; data/**********************************found*********************************/p=p->___2___; next}return s;}main( ){ SLIST *head;int a[N]={12,87,45,32,91,16,20,48};head=creatlist(a); outlist(head);/**********************************found*********************************/ printf("\nsum=%d\n", fun(___3___)); head}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("The list is NULL!\n");else{ printf("\nHead ");do{ printf("->%d", p->data); p=p->next; }while(p!=NULL);printf("->End\n");}}2.给定程序中,函数FUN的功能是:求出形参SS所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。

计算机二级C语言题库之程序填空

计算机二级C语言题库之程序填空

计算机二级C语言题库之程序填空找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1#include &lt;stdio.h&gt;#include&lt;math.h&gt;void main(){ int i,a,b,c;for(i=100;i&lt;=999;i++){ a=i/100;_______1_______ // b=i%100/10;c=i%10;if (________2________) // a*a*a+b*b*b+c*c*c = = iprintf(&quot;%d is a Armstrong number!\n&quot;,i);}}输入1个整数后,输出该数的位数。

(例:输入3214则输出4,输入-23156则输出5)。

#include &lt;stdio.h&gt;void main(){ int n,k=0;scanf(&quot;%d&quot;,&amp;n);while( _____1_____ ){ // n!=0k++;_____2_____; // n=n/10}printf(&quot;%d\n&quot;,k);}求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

#include &lt;stdio.h&gt;#include &lt;math.h&gt;void main(){int n,s=0;scanf(&quot;%d&quot;,&amp;n);______ 1 ______ // if (n&lt;0) n=-n;while(n!=0) {______ 2 ______ // s+=n%10;n=n/10;}printf(&quot;%d\n&quot;,s);}调用函数f,将一个整数首尾倒置。

C语言考试题库之填空题

C语言考试题库之填空题
while(count<=7) {n=n*a; s=s+n; ++count;}
printf("s=%d",s);
}
79、局部变量只在该[函数]有效。
80、设char *s=”\ta\017bc”;则指针变量s指向的字符串所占的字节数是【2】个
81、以下程序的输出结果是。【10】
main()
{ int arr[ ]={30,25,20,15,10,5}, *p=arr;
50、int a=24; printf("%x ", a );输出结果是。[18]
51、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式。
[x<|y<z]
52、下面程序的运行结果是。[x=1,y=20]
#include<stdio.h>
main()
{ int i,x,y;
i=x=y=0;
do {++i;
if(i%2!=0) {x=x+i;i++;}
y=y+i++;
} while (i<=7);
printf("x=%d,y=%d\n",x,y);
}
53、形式参数也是【局部】变量。
54、以下程序
#include <stdio.h>
fun(int x, int y, int *cp, int *dp)
28、在一个C源程序中,注释部分二侧的分界符为。【/*和*/】
29、在C语言程序中,转义字符“\n”的功能是[换行]。
30、当a=5,b=4,c=2时,表达式a>b!=c的值是。【1】

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

NCRE题库二级C语言

NCRE题库二级C语言

第1套上机操作题一、程序填空题【微答案】(1) 0 (2) i++或++i或i+=1或i=i+1 (3)2.0*i【微分析】填空1:循环变量1从开始参加运算,但是在每次循环的开始i都进行自加1操作,故i应赋初值为0。

填空2:循环变量i自增1运算。

填空3:根据公式确定表达式通项。

注意x为double类型,故应将i变为double类型再进行运算。

二、程序修改题【微答案】(1)void fun ( char *s , char *t )(2)t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0;【微分析】(1)从调用函数来看,函数传递的是数组,所以函数的形参应为指针。

(2) 循环结束后回文字符的个数为2*d个,因为数组下标是从0开始的,所以最后一个字符的下标为2*d-1,在最后一个字符的后面加上结束符'\0',因此为t[2*d]='\0';。

三、程序设计题【微答案】void fun(char *s, char t[]){int i,j=0,n;n=strlen(s);for(i=0;i<n;i++)if(i%2!=0&&s[i]%2!=0){t[j]=s[i]; /*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/ j++;}t[j]='\0'; /*最后加上结束标识符*/}【微分析】本题要求除了下标为奇数同时ASCII码值也为奇数的字符之外,其余的所有字符都删除。

即要留下下标为奇数同时ASCII码值也为奇数的字符。

所以if的条件语句中应使用if(i%2!=0&&s[i]%2!=0)。

第2套上机操作题一、程序填空题【微答案】(1)t=i (2) i (3) '\0'或0【微分析】本题中第一个for循环的作用是得到字符串的长度,第二个for循环的作用是对下标为奇数的字符按ASCII码大小排序,最后将排好序的字符取出。

二级C语言等级考试程序填空题题库

二级C语言等级考试程序填空题题库

程序填空题一1. 下面C语言程序将两个递增有序的数值a和b 合并一个数组c,并保持递增次序,最后输出数组c.#include < stodio.h>#define M6#define N5main( ){int a[M]={1,3,5,7,9,11} b[N]={2,4,6,8,10}int c[M+N]int i ,j, k;i=j=k=0while( 1 )if a[i]<b[j]c[k++]=a[i++];else c[k++]=b[j++];while( 2 )c[k++]=a[i++];while(j<N)c[k++]=( 3 )for(k=0;k<( 4 );k[++])printf(%dxt,c[k]; )其中(1)(2)(3)(4)处分别填一数据,使程序达到其功能。

答案:1:i<M&&j<N2:i<M;3:b[j++];4:M+N2.下面h函数的功能是计算如下数学函数H的值。

请填空。

double fgh(double(*f)(double a),double (* g)(double b),double x,double y){return(【1】);}double h(double a,double b)return(fgh(sin,cos,a,b)* fgh(【2】));}解:(1)(*f)(x+y)/(*g)(y-x)(2)cos,sin,a,b[解析]本题考察的是函数的声明。

要填写的两个空都出现在return语句中,所以要仔细分析函数的返回值。

本题的第二个空相对要容易一些,只要根据题干和乘号前面的调用语句对比一下即可得到调用语句的四个参数。

第一个空相对要难一些,函数fgh定义时用到了函数指针(*f)和(*g)是为了增加函数的灵活性。

根据函数h的定义以及题干要求,可以看出函数fgh应该表示的是乘号两边的某一项。

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

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

计算机二级《C语言》考试题库与答案一、程序填空题(共18分)、下列给定程序中,函数flm的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。

例如,s所指的字符串为“def35adh3kjsdt7”,执行后结果为“defadhajsdt3537”。

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

注意:部分源程序在文件BLANKl.c中。

不得增行或删行,也不得更改程序的结构!二、程序修改题(共l8分)下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。

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

注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!三、程序设计题(共24分)编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符为l,则输出3。

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

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

参考答案一、程序填空题【参考答案】(1)j++或j+=1或++j或j=j+1(2)s[i]=t1[i](3)j【考点分析】本题考查:指针型变量;数组变量赋值;for循环语句。

【解题思路】填空1:根据函致fun中的内容可知,数组t1存储了s中的非数字字符,数组口存储了s中的数字字符,为了存储下一个数字字符,下标j要进行加1操作。

填空2:将S串中的数字与非数字字符分开后,要先将非数字字符放入字符串s中,因此填入s[i]=t1[i]。

填空3:最后将敦字字符加到s串之后,并且i要小于数字的.个数j。

二、程序修改题【参考答案】(1)fh(j=i+1;j<6;j++)(2)*(pstr+i)=}(pstr+j);【考点分析】本题考查:冒泡排序算法;for循环语句格式;指针数组。

【经典题整理】计算机二级C语言考试程序填空题

【经典题整理】计算机二级C语言考试程序填空题

程序填空题(共15题)1、在考生文件夹下,给定程序FILL.C 的功能是: 求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注意:圆面积公式为:S=3.14159*r*r ,在程序中定义的变量名要与公式的变量相同)。

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

#include <stdio.h>double fun ( float ___1___ ){return 3.14159 * r*r/2.0 ;}main(){float x;printf ( "Enter x: ");scanf ( "%f", ___2___ );printf (" s = %f\n ", fun ( x ) ); }2、在考生文件夹下,给定程序FILL.C 的功能是: 计算并输出下列级数的前n 项之和Sn ,直到Sn 大于q 为止,q 的值通过形参传入。

Sn = 2/1 + 3/2 + 4/3 + …… + (n+1)/n例如,若q 的值为50.0,则函数值为50.416691。

#include <stdio.h> float fun( float q ) {int n; float s; n = 2; s = 2.0;/************found************/ while (s___1___q) {s=s+(float)(n+1)/n;/************found************/ ___2___; }return s; }main() {printf("%f\n", fun(50)); }3、在考生文件夹下,给定程序FILL.C 的功能是:统计整数n 的各个位上出现数字1、2、3的次数,并通过外部(全局)变量c1、c2、c3返回主函数。

例如,当n=123114350时,结果应该为:c1=3 c2=1 c3=2。

计算机二级c语言程序填空题

计算机二级c语言程序填空题
பைடு நூலகம்
{ if(i%5==0) printf(&quot;\n&quot;); printf(&quot;%d,&quot;,a[i]); } } main() { int a[1000]; int i=0; printf(&quot;\nPlease enter datas(end with 0):&quot;); do { scanf(&quot;%d&quot;,&amp;a[i]); }while(a[i++]!=0); fun(a,i-1); } 【答案】 (1) int a[] (2)count+=a[i]或 count=count+a[i] 2.程序填空题 给定程序中,函数 fun 的功能是:找出 N×N 矩阵中每列元素中的最大值,并按 顺序依次存放于形参 b 所指的一维数组中。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 (3)count/n
注意:不得增行或删行,也不得更改程序的结构! #include #define &lt;stdio.h&gt; N 4
void fun(int(*a)[N],int *b) { int I,j; for(i=0; i&lt;N; i++) { /**********found**********/ b[i]=___1___; for(j=1;j&lt;N;j++) /**********found**********/ if(b[i]___2___a[j][i]) b[i]= a[j][i]; } } main() { int x[N][N]={{12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3}},y[N],I,j; printf(&quot;\nThe matrix :\n&quot;); for(i=0;i&lt;N;i++) { for(j=0; j&lt;N; j++)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机二级C语言题库之程序填空找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1#include &lt;stdio.h&gt;#include&lt;math.h&gt;void main(){ int i,a,b,c;for(i=100;i&lt;=999;i++){ a=i/100;_______1_______ // b=i%100/10;c=i%10;if (________2________) // a*a*a+b*b*b+c*c*c = = iprintf(&quot;%d is a Armstrong number!\n&quot;,i);}}输入1个整数后,输出该数的位数。

(例:输入3214则输出4,输入-23156则输出5)。

#include &lt;stdio.h&gt;void main(){ int n,k=0;scanf(&quot;%d&quot;,&amp;n);while( _____1_____ ){ // n!=0k++;_____2_____; // n=n/10}printf(&quot;%d\n&quot;,k);}求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

#include &lt;stdio.h&gt;#include &lt;math.h&gt;void main(){int n,s=0;scanf(&quot;%d&quot;,&amp;n);______ 1 ______ // if (n&lt;0) n=-n;while(n!=0) {______ 2 ______ // s+=n%10;n=n/10;}printf(&quot;%d\n&quot;,s);}调用函数f,将一个整数首尾倒置。

例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。

#include &lt;stdio.h&gt;#include &lt;math.h&gt;long f(long n){ long m,y=0; m=fabs(n);while(m!=0) {y=y*10+m%10;____1____ // m=m/10 ;}if(n&gt;=0) return y;else _____2_____ // return -y ;}void main(){printf(&quot;%ld\t&quot;,f(12345)); printf(&quot;%ld\n&quot;,f(-34567));}调用函数f,从字符串中删除所有的数字字符。

#include &lt;stdio.h&gt;#include &lt;string.h&gt;#include &lt;ctype.h&gt;void f(char *s){ int i=0;while(s[i]!=&#39;\0&#39;){if(isdigit(s[i])) ____1____(s+i,s+i+1); // strcpy___2___ i++;} // else}void main(){ char str[80];gets(str); f(str); puts(str);}调用find函数在输入的字符串中查找是否出现&quot;the&quot;这个单词。

如果查到返回出现的次数,如果未找到返回0。

#include &lt;stdio.h&gt;int find(char *str){ char *fstr=&quot;the&quot;;int i=0,j,n=0;while (str[i]!=&#39;\0&#39;){for(______1______) // j=0; j&lt;3; j++if (str[j+i]!=fstr[j]) break;if (______2______) n++; // j&gt;=3i++;}return n;}void main(){ char a[80];gets(a);printf(&quot;%d&quot;,find(a));}输入的一个小写字母,将字母循环后移5个位置后输出。

例如:&quot;a&quot;变成&quot;f&quot;,&quot;w&quot;变成&quot;b&quot;。

#include &lt;stdio.h&gt;void main(){ char c;c=getchar();if(______1______) // c&gt;=&#39;a&#39;&amp;&amp;c&lt;=&#39;u&#39;c=c+5;elseif (c&gt;=&#39;v&#39; &amp;&amp; c&lt;=&#39;z&#39;)______2______ // c=(c-&#39;a&#39;+5)%26+&#39;a&#39;;putchar(c);}将字符串s中所有的字符&#39;c&#39;删除。

#include &lt;stdio.h&gt;void main(){ char s[80];int i,j;gets(s);for(i=j=0; ______1______; i++) // s[i] != &#39;\0&#39;if(s[i] != &#39;c&#39;){ s[j]=s[i];______2______ // j++;}s[j]=&#39;\0&#39;;puts(s);}对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。

#include &lt;stdio.h&gt;#include &lt;math.h&gt;#define f(x) x*x-5*x+sin(x)void main(){ int x; float max;______1______ // max=f(1);for(x=2;x&lt;=10;x++)______2______ // if (f(x)&gt;max) max=f(x);printf(&quot;%f\n&quot;,max);}输入三个整数,按由小到大的顺序输出这三个数。

#include &lt;stdio.h&gt;void swap(______1______) // int *pa, int *pb{ /*交换两个数的位置*/int temp;temp = *pa;*pa = *pb;*pb = temp;}void main(){ int a,b,c,temp;scanf(&quot;%d%d%d&quot;,&amp;a,&amp;b,&amp;c);if(a&gt;b)swap(&amp;a,&amp;b);if(b&gt;c)swap(&amp;b,&amp;c);if(______2______) // if ( a&gt;b )swap(&amp;a,&amp;b);printf(&quot;%d,%d,%d&quot;,a,b,c);}调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1 3 4 6 #include &lt;stdio.h&gt; // 数组元素的删除void f(int *a,int *m){ int i, j ;for(i=0;i&lt;*m;i++)if(a[i]&lt;0) {for(j=i--;j&lt;*m-1;j++) a[j]=a[j+1];_____1_____; // *m = *m-1;}}void main(){ int i,n=7,x[7]={1,-2,3,4,-5,6,-7};_______2_______; // f (x, &amp;n) ;for(i=0;i&lt;n;i++) printf(&quot;%5d&quot;,x[i]);printf(&quot;\n&quot;);}调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。

#include &lt;stdio.h&gt;float f(float, float*, int);void main(){ float b[5]={1.1, 2.2, 3.3, 4.4, 5.5 };printf(&quot;%f\n&quot;, f(1.7,b,5) );}float f( _______1________ ) // float x, float *a, int n{ float y=a[0], t=1; int i;for(i=1; i&lt;n; i++) { t=t*x; y=y+a[i]*t; }_____2_____ // return y;}分别统计字符串中英文字母、数字、和其他字符出现的次数。

#include &lt;stdio.h&gt;#include &lt;ctype.h&gt;void main(){ char a[80]; int n[3]={0}, i; gets(a) ;________1________ // for ( i=0; a[i]!=&#39;\0&#39;; i++){if (tolower(a[i])&gt;=&#39;a&#39; &amp;&amp; tolower(a[i])&lt;=&#39;z&#39;) /*统计字母个数*/ n[0]++;else if (________2________) /*统计数字个数*/ // a[i]&gt;=&#39;0&#39; &amp;&amp; a[i]&lt;=&#39;9&#39;n[1]++;elsen[2]++;}for(i=0;i&lt;3;i++) printf(&quot;%d\n&quot;,n[i]);}将输入的十进制整数n通过函数DtoH函数转换为十六进制数,并将转换结果以字符串形式输出。

相关文档
最新文档