二级c语言
二级C语言是全国计算机等级考试中的一项,是很多非计算机专业朋友需要获得的证书,这里收集大量的二级C语言相关的教程和题目
-
函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除, 串中剩余字符形成一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为:“ABCDEFGl2345”,其中字符 B的ASCII码值为偶数、…、字符2的ASCII码值为偶数、…都应当删 除,其它依此类推。最后t所指的数组中的内容应是:“ACEG135”。 注意:部分源程序存在文件PROG1.c中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花 括号中填入你编写的若干语句。/**********code.c**********/ #include <stdio.h> #include <string.h> void fun(char *s,char t[]) { } void main() { char s[100],t[100]; printf("\nPlease enter string S:"); scanf("%s",s); fun(s,t); printf("\nThe result is: %s\n", t); }
-
给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t 所指字符串相同的子串的个数作为函数值返回。 例如,当s所指字符串中的内容为:“abcdabfab”,t所指字符串的 内容为:“ab”,则函数返回整数3。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构!/**********code.c**********/ #include <stdio.h> #include <string.h> int fun (char *s, char *t) { int n; char *p,*r; n = 0; while(*s) { p = s; r = t; while (*r) if(*r == *p) { /**********found**********/ r++; p++ } else break; /**********found**********/ if(r == '\0') n++; s++; } return n; } void main() { char s[100],t[100]; int m; printf("\nPlease enter string S:"); scanf("%s", s); printf("\nPlease enter substring t:"); scanf("%s", t); m = fun(s,t); printf("\nThe result is: m = %d\n", m); } /**********-code.c**********/
-
人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!/**********code.c**********/ #include <stdio.h> #include <string.h> #define N 8 typedef struct { char num[10]; int year,month,day; }STU; /**********found**********/ ①______ fun(STU *std,char *num) { int i; STU a={"",9999,99,99}; for (i=0; i<N; i++) /**********found**********/ if(strcmp(②______,num)==0) /**********found**********/ return (③______); return a; } void main() { STU std[N]={{"111111",1984,2,15}, {"222222",1983,9,21}, {"333333",1984,9,1}, {"444444",1983,7,15}, {"555555",1984,9,28}, {"666666",1983,11,15}, {"777777",1983,6,22}, {"888888",1984,8,19}}; STU p; char n[10]="666666"; p=fun(std,n); if(p.num[0]==0) printf("\nNot found !\n"); else { printf("\nSucceed !\n "); printf("%s %d-%d-%d\n", p.num, p.year, p.month, p.day); } } /**********-code.c**********/
-
请编写一个函数fun其功能是:将ss所指字符串中所有下标为奇数位 置上的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入“abc4EFg”,则应输出“aBe4EF9”。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花 括号中填入你编写的若干语句。/**********code.c**********/ #include <stdio.h> #include <string.h> void fun(char *ss) { } main() { char tt[51]; printf( "\nPlease enter an character string within 50 characters:\n" ); gets(tt); printf("\n\nAfter changing, the string\n \"%s\"",tt); fun(tt) ; printf("\nbecomes\n \"%s\"",tt); }
-
给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度 <20),将该字符串中的所有字符按ASCII码升序排序后输出。 例如,若输入:edcba,则应输出:abcde。 请改正程序中的错误,使它能统计出正确的结果. 注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构!/**********code.c**********/ #include <stdio.h> #include <string.h> void fun(char t[]) { char c; int i, j; /**********found***********/ for(i = strlen(t);i;i--) for(j = 0; j < i; j++) /**********found***********/ if(t[j] < t[j + 1]) { c = t[j]; t[j] = t[j + 1]; t[j + 1] = c; } } void main() { char s[81]; printf("\nPlease enter a character string: "); gets(s); printf("\n\nBefore sorting:\n \"%s\"",s); fun(s); printf("\nAfter sorting decendingly:\n \"%s\"\n",s); } /**********-code.c**********/
-
给定程序中,函数fun的功能是:将a所指4×3矩阵中第k行的元素与第0行元素变换。例如,有下列矩阵:1 2 34 5 67 8 910 11 12若k为2,程序执行结果为:7 8 9 4 5 6 1 2 3 10 11 12 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!/**********code.c**********/ #include<stdio.h> #define N 3 #define M 4 /**********found**********/ void fun(int (*a)[N],int ①______) { int i,temp ; /**********found**********/ for(i=0;i < ②______;i++) { temp=a[0][i] ; /**********found**********/ a[0][i] = ③______; a[k][i] = temp; } } void main() { int x[M][N]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},i,j; printf("The array before moving:\n\n"); for(i=0;i<M;i++) { for(j=0;j<N;j++) printf("%3d",x[i][j]); printf("\n\n"); } fun(x,2); printf("The array after moving:\n\n"); for(i=0;i<M;i++) { for(j=0;j<N;j++) printf("%3d",x[i][j]); printf("\n\n"); } } /**********-code.c**********/
-
请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中 最大元素的值,并将此值返回调用函数。注意部分源程序存在文件 PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花 括号中埴入你编写的若干语句。/**********code.c**********/ #include <stdio.h> #define M 4 int fun (int a[][M]) { } void main() { int arr[2][M]={5,8,3,45,76,-4,12,82}; printf("max =%d\n", fun(arr)); }
-
下列给定的程序中,函数fun()的功能是:求出以下分数序列的前n 项和。2/1,3/2,5/3,8/5,13/8,21/13,……和值通过函数值返回 main()函数。例如,若输入n=5,则应输出8.391667。 注意:部分源程序给出如下。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构!/**********code.c**********/ #include <stdio.h> /**********found**********/ void fun(int n) { int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for(k = 1; k <= n; k++) { /**********found**********/ s = s + (Double)a / b; c = a; a = a + b; b = c; } return s; } void main() { int n = 5; printf("\nThe value of function is: %lf\n", fun(n)); } /**********-code.c**********/
-
给定程序中,函数fun的功能是计算下式: 直到 并把计算结果作为函数值返回。 例如:若形参e的值为1e-3,函数的返回值为0.141457。 请在程序的下划线处填入正确的内容并把下划线删除.使程序得 出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!/**********code.c**********/ #include <stdio.h. double fun(double e) { int i,k; double s,t, x; s=0; k=1; i=2; x=①______/4; while(x ②______ e) { s=s+k*x; k=k* (-1); t=2*i; x=③______/(t*t); i++; } return s; } main() { double e=1e-3; printf("\nThe result is: %f\n",fun(e)); } /**********-code.c**********/
-
请编写一个函数fun,它的功能是:找出一堆整型数组元素中最大 的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组 元素中的值己在主函数中赋予。 主函数中x是数组名,n是x中的数据个数,max存放最大值,index存 放最大值所在元素的下标。 注意部分源程序存在文件PROG1.C 文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花 括号中填入你编写的若干语句。/**********code.c**********/ #include <stdlib.h> #include <stdio.h> void fun(int a[],int n ,int *max,int *d) { } void main() { int i,x[20],max,index,n=10; for(i=0;i < n;i++) { x[i] = rand()%50; printf("%4d",x[i]); } printf("\n"); fun(x,n,&max,&index); printf("Max =%5d,Index =%4d\n",max,index); }
-
给定程序MODI1.C中函数fun的功能是:判断一个整数是否是素 数,若是返回1,否则返回0。在main()函数中,若fun返回1输出YES, 若fun返回0输出NO! 诸改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数。不得增行或删行,也不得更改程序的 结构!/**********code.c**********/ #include <stdio.h> int fun(int m) { int k = 2; while(k <= m && (m%k)) /**********found**********/ k++ /**********found**********/ if(m = k) return 1; else return 0; } void main() { int n; printf("\nPlease enter n: "); scanf("%d", &n); if (fun(n)) printf("YES\n"); else printf("NO!\n"); } /**********-code.c**********/
-
给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返 回。 例如,当形参n的值为10时,函数返回:-0.204491。 请在程序的下划线处填入正确的内容并把下划线删除.使程序得 出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!/**********code.c**********/ #include <stdio.h> double fun(int n) { int i, k; double s, t; s=0; /**********found**********/ k=①______; for(i=1; i<=n; i++) { /**********found**********/ t=②______; s=s+k*(2*i-1)*(2*i+1)/(t*t); /**********found**********/ k=k*③______; } return s; } void main() { int n=-1; while(n<0) { printf("Please input(n>0): "); scanf("%d",&n); } printf("\nThe result is: %f\n",fun(n)); } /**********-code.c**********/
-
请编写一个函数fun,他的功能是:根据以下公式求 π的值(要求满 足精度0.0005,即某项小于0.0005时停止迭代): 程序运行后,如果输入精度0.0005,则程序输出为3.14…。 注意部分源程序存在文件PROG1.C立件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花 括号中填入你编写的若干语句。/**********code.c**********/ #include <stdio.h> #include <math.h> double fun(double eps) { } void main() { double x; printf("Input eps:") ; scanf("%lf",&x); printf("\neps = %lf,PI=%lf\n", x, fun(x)); }
-
给定程序MODI1.C中函数fun的功能是:统计substr所指子字符串在 str所指字符串中出现的次数。 例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构!/**********code.c**********/ #include <stdio.h> int fun (char *str,char *substr) { int i,j,k,num=0; /**********found**********/ for(i = 0, str[i], i++) for(j=i,k=0;substr[k]==str[j];k++,j++) /**********found**********/ If(substr[k+1]=='\0') { num++; break; } return num; } void main() { char str[80],substr[80]; printf("Input a string:") ; gets(str); printf("Input a substring:") ; gets(substr); printf("%d\n",fun(str,substr)); } /**********-code.c**********/
-
给定程序中,函数fun的功能是:计算下式前n项的和作为函数的返 回值 例如,当形参n的值为10时,函数返回:9.612558。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得 出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!/**********code.c**********/ #include <stdio.h> double fun(int n) { int i; double s,t; /**********found**********/ s=①______; /**********found**********/ for(i=1; i<=②______; i++) { t=2.0*i; /**********found**********/ s=s+(2.0*i-1)*(2.0*i+1)/③______; } return s; } main() { int n=-1; while(n<0) { printf("Please input(n>0): "); scanf("%d",&n); } printf("\nThe result is: %f\n",fun(n)); } /**********-code.c**********/
-
请编写一个函数fun,它的功能是:将一个表示正整数的数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转换为整数值1234。函数fun中给出的语句仅供参考。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/**********code.c**********/ #include <stdio.h> #include <string.h> long fun(char *p) { int i,len;/* len为串长*/ long x=0; len=strlen(p); /*以下完成数字字符串转换为数字,注意字符’0’不是数字0*/ return x; } void main() { char s[6]; long n; printf("Enter a tring:\n"); gets(s); n = fun(s); printf("%ld\n",n); }
-
给定程序MODI1.C中函数fun的功能是:计算n!。例如,给n输入入5,则输出l20.000000。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。/**********code.c**********/ #include <stdio.h> double fun(int n) { double result = 1.0 ; /**********found**********/ if n == 0 return 1.0 ; while(n >1 && n < 170) /**********found**********/ result *= n-- return result ; }void main() { int n; printf("Input N:"); scanf("%d", &n); printf("\n\n%d! =%lf\n\n",n,fun(n)); } /**********-code.c**********/
-
给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数.并通过形参指针n传回所指变量。例如:输入一个数:27638496,新的数:为739。请在程序的下划线处填八正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构!/**********code.c**********/ #include <stdio.h> void fun(unsigned long *n) { unsigned long x=0, i; int t; i=1; while(*n) { /**********found**********/ t=*n % ①______; /**********found**********/ if(t%2!= ②______) { x=x+t*i; i=i*10; }*n =*n /10; } /**********found**********/ *n=③______; } main() { unsigned long n=-1; while(n>99999999||n<0) { printf("Please input(0<n<100000000): "); scanf("%ld",&n); } fun(&n); printf("\nThe result is: %ld\n",n); } /**********-code.c**********/
-
编写一个函数fun它的功能是:实现两个字符串的连接(使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。例如,分别输入下面两个字符串:FirstStrinf—SecondString程序输出:FirstString——SecondString注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/**********code.c**********/ #include <stdio.h> void fun(char p1[],char p2[]) { } void main() { char s1[80],s2[40]; printf("Enter s1 and s2:\n"); scanf("%s%s",s1,s2); printf("s1=%s\n",s1); printf("s2=%s\n",s2); printf("Invoke fun(s1,s2):\n"); fun(s1,s2); printf("After invoking:\n"); printf("%s\n",s1); }
-
给定程序MODI1.C中函数fun功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:7531。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!/**********code.c**********/ #include <stdio.h> void fun (long s, long *t) { int d; long sl=1; /**********found**********/ t = 0; while (s > 0) { d = s%10; /**********found**********/ if (d%2 == 0) { *t = d * sl + *t; sl *= 10; }s /= 10; } }void main() { long s, t; printf("\nPlease enter s:"); scanf("%ld", &s); fun(s, &t); printf("The result is: %ld\n", t); } /**********-code.c**********/