2012计算机二级题库 联系客服

发布时间 : 星期一 文章2012计算机二级题库更新完毕开始阅读

赛德最新预测题库

for ( i=0; i< N; i++ )printf(\ Mark = %d\\n\ fun ( a, &m );

printf (\ RESULT *****\\n\ printf (\ : %s , %d\\n\}

14、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #define N 16 typedef struct { char num[10]; int s; } STREC;

int fun( STREC *a, STREC *b ) { }

main()

{ STREC s[N]={{\ {\ {\ {\ STREC h[N]; int i,n;FILE *out ; n=fun( s,h );

printf(\ for(i=0;i

printf(\ M\\n\ printf(\

out = fopen(\ fprintf(out, \ for(i=0;i

fprintf(out, \ fclose(out); }

15、请编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中。 例如, 二维数组中的数据为: W W W W S S S S H H H H

则字符串中的内容应是: WSHWSHWSHWSH。 注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include #define M 3 #define N 4

void fun(char s[][N], char *b) {

int i,j,n=0;

for(i=0; i < N;i++) /* 请填写相应语句完成其功能 */ { }

b[n]='\\0'; }

main()

{ char a[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H'}}; int i,j;void

printf(\ for(i=0; i

{ for(j=0;j

fun(w,a);

printf(\ printf(\}

16、编写函数fun, 函数的功能是求出小于或等于lim的所有素数并放在aa

数组中,函数返回所求出的素数的个数。函数fun中给出的语句仅供参考。 注意:部分源程序在文件PROG1.C中。

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

#include #define MAX 100

int fun(int lim, int aa[MAX]) {

/* 以下代码仅供参考 */ int i,j,k=0;

/* 其中变量k用于统计素数个数 */ for(i=2;i<=lim;i++) {

/* 以下找出小于或等于lim的素数存入aa数组中并统计素数个数 */ }

return k; }

main() {

int limit, i, sum;void int aa[MAX] ;

printf(\输入一个整数:\ scanf(\ sum=fun(limit, aa);

for(i=0 ; i < sum ; i++) {

if(i % 10 == 0 && i != 0) printf(\ printf(\ } }

17、请编写函数fun,它的功能是: 求出 1 到 1000 之间能被 7 或11整除、但不能同时被 7 和 11 整除的所有整数并将它们放在a所指的数组中,通过 n 返回这些数的个数。

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

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

void fun (int *a, int *n) { }

main( )

{ int aa[1000], n, k ; void

fun ( aa, &n ) ;

for ( k = 0 ; k < n ; k++ )

if((k + 1) % 10 == 0) printf(\ else printf(\}

18、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。

例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,他的平均分应当是:78.875。

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

请勿改动主函数main和其它函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。 #include #define N 8 typedef struct { char num[10]; double s[N]; double ave; } STREC;

void fun(STREC *a) { }

main()

{ STREC s={\ int i; void fun( &s );

printf(\ for(i=0;i

25

赛德最新预测题库

printf(\ printf(\}

19、函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。 例如,若s所指字符串中的内容为\,其中字符C的ASCII码值为奇数,在数组中的下标为偶数, 因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其它依此类推。 最后t所指的数组中的内容应是\。 注意: 部分源程序存在文件PROG1.C中。

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

void fun(char *s, char t[]) { }

main() {

char s[100], t[100];void

printf(\ fun(s, t);

printf(\}

20、编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0 的一个实根。

迭代步骤如下:(1)取 x1 初值为0.0;(2)x0 = x1,把x1的值赋给 x0;(3)x1 = cos(x0),求出一个新的x1;(4)若x0 - x1的绝对值小于 0.000001,执行步骤(5),否则执 行步骤(2);(5)所求x1就是方程 cos(x)-x=0 的一个实根,作为函数值返回。

程序将输出结果Root=0.739086。

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

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

#include #include double fun() { }

main() {

void

printf(\}

21、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做, 字符串中间和前面的*号不删除。

例如,字符串中的内容为:****A*BC*DEF*G*******,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:****A*BC*DEF*G*******。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。 注意: 部分源程序在文件PROG1.C中。

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

void fun( char *a,int n ) { }

main()

{ char s[81]; int n; void

printf(\ printf(\ \ fun( s,n );

printf(\}

22、请编写一个函数,函数的功能是删除字符串中的所有空格。 例如, 主函数中输入\则输出为 \。 注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include void fun(char *str) { }

main() {

char str[81];void

printf(\ gets(str); puts(str); fun(str);

printf(\}

23、请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入 (规定实型数为正数)。

例如:实型数为 1234.567, 则函数返回 1234.570000; 实型数为 1234.564, 则函数返回 1234.560000。 注意: 部分源程序存在文件PROG1.C文件中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include float fun ( float h ) { }

main( )

{ float a;void

printf (\ a: \ printf ( \ \ printf ( \

printf ( \ %f\\n\}

24、请编写一个函数 void fun(char *tt, int pp[]),统计在tt所指字符串中'a' 到 'z' 26个小写字母各自出现的次数,并依次放在pp所指数组中。

例如,当输入字符串:abcdefgabcdeabc 后,程序的输出结果应该是: 3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 注意: 部分源程序在文件PROG1.C中。

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

#include #include

void fun(char *tt, int pp[]) { }

main( )

{ char aa[1000] ; int bb[26], k ; void

printf( \ a char string:\ fun(aa, bb ) ;

for ( k = 0 ; k < 26 ; k++ ) printf (\ printf( \}

25、请编写函数fun, 对长度为7个字符的字符串, 除首、尾字符外,将其余5个字符按ASCII码降序排列。

例如,原来的字符串为 CEAedca,排序后输出为 CedcEAa 。 注意: 部分源程序在文件PROG1.C中。

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

void fun(char *s,int num) {

26

赛德最新预测题库

}

main() {

void

char s[10];

printf(\输入7个字符的字符串:\ gets(s); fun(s,7);

printf(\}

26、编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1

F(n)=F(n-1)+F(n-2)

例如:当t = 1000时,函数值为:1597。 注意: 部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include int fun( int t) { }

main() /* 主函数 */ { int n; void n=1000;

printf(\}

27、请编写函数fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第1到第m个字符, 平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。

例如, 字符串中原有的内容为: ABCDEFGHIJK, m的值为3, 则移动后, 字符串中的内容应该是: DEFGHIJKABC。

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

请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 #include #include #define N 80

void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一个位置 */ {

int i; char t; t=w[0];

for(i=0;i<(int)strlen(w)-1;i++) w[i]=w[i+1]; w[strlen(w)-1]=t; }

void fun(char *w, int m) /* 可调用fun1函数左移字符 */ { }

main()

{ char a[N]= \ int m;void

printf(\

printf(\ m: \ fun(a,m);

printf(\ printf(\}

28、请编写函数fun,其功能是将形参s所指的字符串放入形参a所指的字符数组中,使a中存放同样的字符串。说明:不得使用系统提供的字符串函数。 注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部位填入所编写的若干语句。

#include #define N 20 void

void fun( char *a , char *s) { }

main()

{ char s1[N], *s2=\ fun( s1,s2);

printf(\ printf(\}

29、请编一个函数fun(char *s),函数的功能是把s所指字符串中的内容逆置。

例如:字符串中原有的字符串为:abcdefg, 则调用该函数后, 串中的内容为:gfedcba。 注意: 部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include #define N 81 void fun ( char *s ) { }

main( ) {

void

char a[N];

printf ( \ a string : \ printf ( \ \ fun ( a ); printf(\

printf ( \ \ puts ( a ); }

30、请编写函数fun,其功能是:将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a指向存放得分的数组,形参n中存放得分个数(n>2)。

例如,若输入9.9 8.5 7.6 8.5 9.3 9.5 8.9 7.8 8.6 8.4十个得分,则输出结果为:8.687500。

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

double fun(double a[ ] , int n) { }

main()

{ double b[10], r; int i;

printf(\输入10个分数放入b数组中 : \ for (i=0; i<10; i++) scanf(\ printf(\输入的10个分数是 : \

for (i=0; i<10; i++) printf(\ printf(\ r = fun(b, 10);

printf(\去掉最高分和最低分后的平均分 : %f\\n\}

31、请编写函数fun, 函数的功能是:实现B=A+A', 即把矩阵A加上A的转置, 存放在矩阵B中。计算结果在 main 函数中输出。例如,输入下面的矩阵: 其转置矩阵为:

1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9 程序输出:

2 6 10 6 10 14 10 14 18

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

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

void fun ( int a[3][3], int b[3][3]) { }

main( ) /* 主程序 */

{ int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}, t[3][3] ; int i, j ;

27

赛德最新预测题库

void fun(a, t) ;

for (i = 0 ; i < 3 ; i++) { for (j = 0 ; j < 3 ; j++) printf(\ printf(\ } }

32、请编写函数fun,函数的功能是查找x在s所指数组中下标的位置作为函数值返回,若x不存在,则返回-1。

注意:部分源程序存在PROG1.C中,请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include #include #define N 15 void

int fun( int *s, int x) { }

main()

{ int a[N]={ 29,13,5,22,10,9,3,18,22,25,14,15,2,7,27},i,x,index; printf(\数组中的数据 :\\n\

for(i=0; i

printf(\给x输入待查找的数 : \ scanf(\ index=fun( a, x );

printf(\}

33、编写程序, 实现矩阵(3行3列)的转置(即行列互换) 例如, 输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出:

100 400 700 200 500 800 300 600 900

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

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

void fun(int array[3][3]) { }

main() {

int i,j;void

int array[3][3]={{100,200,300}, {400,500,600}, {700,800,900}}; for (i=0;i<3;i++) { for (j=0;j<3;j++)

printf(\ printf(\ }

fun(array);

printf(\ for (i=0;i<3;i++) { for (j=0;j<3;j++)

printf(\ printf(\ } }

34、N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。 例如,若学生的成绩是:85,76,69,85,91,72,64,87, 则平均分应当是:78.625。

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

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

#define N 8 struct slist { double s;

struct slist *next; };

typedef struct slist STREC; double fun( STREC *h ) { }

STREC * creat( double *s)

{ STREC *h,*p,*q; int i=0;

h=p=(STREC*)malloc(sizeof(STREC));p->s=0; while(i

{ q=(STREC*)malloc(sizeof(STREC)); q->s=s[i]; i++; p->next=q; p=q; }

p->next=0; return h; }

outlist( STREC *h) { STREC *p;

p=h->next; printf(\ do

{ printf(\ while(p!=0); printf(\}

main()

{ double s[N]={85,76,69,85,91,72,64,87},ave; void

STREC *h;

h=creat( s ); outlist(h); ave=fun( h );

printf(\}

35、编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为: asd asasdfg asd as zx67 asd mklo,子字符串为:as,则应输出6。

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

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

int fun(char *str,char *substr) { }

main() {

void

char str[81],substr[3]; int n;

printf(\输入主字符串: \ gets(str);

printf(\输入子字符串: \ gets(substr); puts(str); puts(substr); n=fun(str,substr); printf(\}

36、编写函数fun,函数的功能是: 从s所指的字符串中删除给定的字符。同一字母的大、小写按不同字符处理。

若程序执行时输入字符串为: turbo c and borland c++

从键盘上输入字符:n, 则输出后变为: turbo c ad borlad c++ 如果输入的字符在字符串中不存在, 则字符串照原样输出。 注意: 部分源程序在文件PROG1.C中。

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

#include #include void fun(char s[],char c) {

28