77范文网 - 专业文章范例文档资料分享平台

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

来源:网络收集 时间:2019-04-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

学海教育 内部资料 版权所有 翻印必究

{ char s[100]; int upper = 0, lower = 0 ; printf( \ \ gets ( s ); fun ( s, & upper, &lower );

printf( \ lower = %d\\n\}

24、给定程序MODI1.C中 fun 函数的功能是:求 s = aa… aa - ... - aaa - aa - a

(此处 aa? aa 表示 n 个 a, a 和 n 的值在 1 至 9 之间) 例如 a = 3, n = 6, 则以上表达式为: s = 333333 - 33333 - 3333 - 333 - 33 - 3 其值是:296298

a 和 n 是 fun 函数的形参,表达式的值作为函数值传回 main函数。 请改正程序中的错误,使它能计算出正确的结果。

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

#include long fun (int a, int n) { int j ;

/**************found**************/ long s = 0, t = 1 ; for ( j = 0 ; j < n ; j++) t = t * 10 + a ; s = t ;

for ( j = 1 ; j < n ; j++) {

/**************found**************/ t = t % 10 ; s = s - t ; }

return(s) ; }

main( )

{ int a, n ;

printf( \ scanf( \

printf( \ function is: %ld\\n\}

25、给定程序MODI1.C中 fun 函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。 例如, 若输入

\, 则应输出 \。 请修改程序中的错误之处, 使它能得出正确的结果。

注意: 不要改动 main 函数, 不得删行, 也不得更改程序的结构! #include #include #include void fun( char *p ) {

int k = 0;

for( ; *p; p++ ) if( k ) {

/**********found***********/ if( p == ' ' ) {

k = 0;

/**********found***********/

* (p-1) = toupper( *( p - 1 ) ) } } else k = 1; }

main() {

char chrstr[64]; int d ;

printf( \ gets(chrstr); d=strlen(chrstr) ; chrstr[d] = ' ' ; chrstr[d+1] = 0 ;

printf(\ %s\ fun(chrstr);

printf(\ %s\}

26

例如,若q的值为: 50.0,则函数值为: 49.394948。 请改正程序中的错误,使程序能输出正确的结果。

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

double fun( double q ) { int n; double s,t; n = 2; s = 2.0;

while (s<=q) {

t=s;

/************found************/ s=s+(n+1)/n; n++; }

printf(\

/************found************/ return s; }

main ( ) {

printf(\}

27、给定程序MODI1.C中函数fun的功能是: 比较两个字符串,将长的那个字符串的首地址作为函数值返回。

请改正函数fun中指定部位的错误, 使它能得出正确的结果。

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

/**********found**********/ char fun(char *s, char *t)

{ int sl=0,tl=0; char *ss, *tt; ss=s; tt=t; while(*ss) { sl++;

/**********found**********/ (*ss)++; }

while(*tt) { tl++;

/**********found**********/ (*tt)++; }

if(tl>sl) return t; else return s; }

main()

{ char a[80],b[80];

printf(\ \

printf(\ \ printf(\}

28、给定程序MODI1.C中,函数fun()的功能是统计s所指一维数组中0的个数(存在变量zero中)和1的个数(存在变量one中),并输出结果。 请改正函数fun中指定部位的错误,使它能得出正确的结果。

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

#include

void fun( int *s, int n ) {

/**********found**********/ int i, one=0, zero ; for(i=0; i

/**********found**********/ switch( s[i] ); {

/**********found**********/ case 0 : zero++; case 1 : one ++; }

printf( \ zero : %d\\n\ zero);

16

学海教育 内部资料 版权所有 翻印必究

}

main()

{ int a[20]={1,1,1,0,1,0,0,0,1,0,0,1,1,0,0,1,0,1,0,0}, n=20; fun( a, n ); }

29、给定程序MODI1.C中函数 fun 的功能是:判断ch中的字符是否与str所指串中的某个字符相同; 若相同,什么也不做,若不同,则将其插在串的最后。

请改正程序中的错误,使它能进行正确的操作。

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

/**********found**********/ void fun(char str, char ch )

{ while ( *str && *str != ch ) str++; /**********found**********/ if ( *str == ch ) { str [ 0 ] = ch;

/**********found**********/ str[1] = '0'; } }

main( )

{ char s[81], c ;

printf( \ gets ( s ); printf (\ c = getchar(); fun(s, c) ;

printf( \ is %s\\n\ s); }

30、给定程序MODI1.C中,函数fun的功能是求矩阵(二维数组)a[N][N]中每行的最小值,结果存放到数组b中。

/**************found**************/ for(i = 2 ; i < m ; i++)

/**************found**************/ y += 1 / (i * i) ; return( y ) ; }

main( )

{ int n = 5 ;

printf( \}

32、给定程序MODI1.C中,函数fun的功能是:在任意给定的N个正整数中,从左到右依次逐个取三个数作为一组,按值大小找出该组数的中值,用该中值替换与该组数对应的原三个数中的中间位置的数。处理后原数列中首尾2个数不变。处理后的数列在主函数中输出。例如,有10个正整数如下:

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

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

#include #define N 10

int findmid(int a, int b, int c) { int t;

t = (a>b)?(b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b)); /**********found**********/ return b; }

void fun(int x[]) { int i,a,b,c,t[N];

/**********found**********/ for(i=0;i

{ a=t[i];b=t[i+1];c=t[i+2]; /**********found**********/ t[i+1]=findmid(a,b,c); } }

main()

{ int i, x[N]={6,5,7,23,18,5,8,21,45,38}; for(i=0; i

for(i=0; i

33、给定程序MODI1.C中函数fun的功能是: 先从键盘上输入一个3行3列矩阵的各个元素的值, 然后输出主对角线元素之和。

请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。

注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include void fun() {

int a[3][3],sum; int i,j;

/*********found**********/ ______;

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

/*********found**********/ scanf(\ }

for (i=0;i<3;i++) sum=sum+a[i][i];

printf(\}

main()

请改正函数fun中指定部位的错误,使它能得出正确的结果。

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

void fun(int a[][N], int b[]) { int i, j;

for (i=0; i

/**********found**********/ b[i] = a[0][0];

/**********found**********/ for (j=1; j

main()

{ int a[N][N]={{1,4,3,2},{8,6,5,7},{11,10,12,9},{13,16,14,15}},b[N]; int i;

fun(a,b);

for (i=0; i

31、给定程序MODI1.C中函数fun的功能是:根据整型形参m,计算如下公式的值。

1 1 1 1 y = 1 + ----- + ----- + ----- + …… + -----

2*2 3*3 4*4 m*m 例如,若 m 中的值为: 5,则应输出:1.463611。 请改正程序中的错误,使它能得出正确的结果。

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

double fun ( int m ) { double y = 1.0 ; int i;

17

学海教育 内部资料 版权所有 翻印必究

{

fun(); }

34、给定程序MODI1.C中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,在调用fun函数之前给a输入字符串:ABCDEFGHIJK, 调用函数之后,字符数组b中的内容则为:ABC DEF GHI JK。 请改正程序中的错误,使它能得出正确结果。

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

void fun(char *p, char *b) { int i, k=0; while(*p) { i=1;

while( i<=3 && *p ) { /**********found**********/ b[k]=p;

k++; p++; i++; } if(*p) {

/**********found**********/ b[k++]=\ } }

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

main()

{ char a[80],b[80];

printf(\ \ gets(a); printf(\ puts(a); fun(a,b);

printf(\ \ puts(b); printf(\}

35、给定程序MODI1.C中 fun 函数的功能是: 根据形参m,计算如下公式的值。

1 1 1 1 t = 1 + ----- +----- + ----- + ……+ -----

2 3 4 m 例如,若输入 5,则应输出 2.283333。

请改正程序中的错误或在下划线处填上适当的内容并把下划线删除, 使它能计算出正确的结果。

注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include double fun( int m ) {

double t = 1.0; int i;

for( i = 2; i <= m; i++ )

/**********found**********/ t += 1.0/k;

/**********found**********/ ________ }

main() {

int m;

printf( \ scanf( \

printf( \}

36、给定程序MODI1.C中函数fun的功能是: 计算整数n的阶乘。请改正程序中的错误或在下划线处填上适当的内容并把下划线删除,使它能计算出正确的结果。

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

#include double fun(int n) {

double result=1.0;

while (n>1 && n<170) /*********found*********/ result*=--n;

/*********found*********/ return _____;

}

main() {

int n;

printf(\ scanf(\

printf(\}

37、给定程序MODI1.C中函数 fun 的功能是:实现两个整数的交换。 例如给a和b分别输入:60 和 65,输出为:a = 65 b = 60 请改正程序中的错误,使它能得出正确的结果。

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

/**********found**********/ void fun ( int a, b ) { int t;

/**********found**********/ t = b; b = a ; a = t; }

main ( )

{ int a, b;

printf ( \ a , b : \ fun ( &a , &b ) ;

printf (\ b = %d\\n \}

38、给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。

例如,当s所指字符串中的内容为:\,t所指字符串的内容为:\,则函数返回整数3。

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

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

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; }

main() {

char s[100], t[100]; int m;

printf(\ printf(\ m = fun( s, t);

printf(\ m = %d\\n\}

39、给定程序MODI1.C中函数 fun 的功能是:计算

S = f(-n) + f(-n+1) +?+ f(0) + f(1) + f(2) +?+ f(n)的值。例如,当n为5时,函数值应为:10.407143。f(x)函数定义如下: ┌(x+1)/(x-2) x>0 且 x≠2 f(x) = ┤0 x=0 或 x=2 └(x-1)/(x-2) x<0

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

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

/************found************/ f( double x) {

if (x == 0.0 || x == 2.0) return 0.0;

18

学海教育 内部资料 版权所有 翻印必究

else if (x < 0.0)

return (x -1)/(x-2); else

return (x +1)/(x-2); }

double fun( int n )

{ int i; double s=0.0, y; for (i= -n; i<=n; i++) {y=f(1.0*i); s += y;}

/************found************/ return s }

main ( ) {

printf(\}

40、由N个有序整数组成的数列已放在一维数组中,给定程序MODI1.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其下标值;反之,返回-1。

折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(lowhigh,查找结束。

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

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

#include #define N 10

/************found************/ void fun(int a[], int m ) { int low=0,high=N-1,mid; while(low<=high) { mid=(low+high)/2; if(m

/************found************/ else If(m > a[mid]) low=mid+1; else return(mid); }

return(-1); }

main()

{ int i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k,m; printf(\数组中的数据如下:\ for(i=0;i

if(k>=0) printf(\ else printf(\}

41、在主函数中从键盘输入若干个数放入数组中, 用0结束输入并放在最后一个元素中。给定程序MODI1.C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。

例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0, 则程序的运行结果为:19.250000。

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

注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构! #include double fun ( int x[]) {

/************found************/ int sum = 0.0; int c=0, i=0; while (x[i] != 0) { if (x[i] > 0) {

sum += x[i]; c++; } i++; }

/************found************/ sum \\= c; return sum; }

main( )

{ int x[1000]; int i=0;

printf( \

do

{ scanf(\ } while (x[i++] != 0); printf(\}

42、给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表, 并为各结点数据域赋0到m-1的值。

请改正函数Creatlink中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include #include typedef struct aa { int data;

struct aa *next; } NODE;

NODE *Creatlink(int n, int m) { NODE *h=NULL, *p, *s; int i;

/**********found***********/

p=(NODE )malloc(sizeof(NODE)); h=p;

p->next=NULL; for(i=1; i<=n; i++)

{ s=(NODE *)malloc(sizeof(NODE));

s->data=rand()%m; s->next=p->next; p->next=s; p=p->next; }

/**********found***********/ return p; }

outlink(NODE *h) { NODE *p; p=h->next;

printf(\ LIST :\\n\\n HEAD \ while(p)

{ printf(\ p=p->next; }

printf(\}

main()

{ NODE *head;

head=Creatlink(8,22); outlink(head); }

43、给定程序MODI1.C中函数fun的功能是: 在字符串的最前端加入n个*号, 形成新串, 并且覆盖原串。

注意: 字符串的长度最长允许为79。

请改正函数fun中指定部位的错误, 使它能得出正确的结果。

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

void fun ( char s[], int n ) {

char a[80] , *p; int i;

/**********found***********/ s=p;

for(i=0; i

{ a[i]=*p; i++; }

/**********found***********/ while(*p++) a[i]=0; strcpy(s,a); }

main()

{ int n; char s[80];

printf(\ : \ printf(\

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

printf(\}

19

学海教育 内部资料 版权所有 翻印必究

44、给定程序MODI1.C中函数fun的功能是:将 m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。

例如:把3个串:\连接起来,结果是 \。 请改正程序中的错误,使它能得出正确的结果。

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

#include #include

void fun ( char str[][10], int m, char *pt ) {

/************found************/ Int k, q, i ;

for ( k = 0; k < m; k++ ) { q = strlen ( str [k] ); for (i=0; i

/************found************/ pt[i] = str[k,i] ; pt += q ; pt[0] = 0 ; } }

main( )

{ int m, h ;

char s[10][10], p[120] ;

printf( \ m:\ scanf(\ gets(s[0]) ;

printf( \ %d string:\\n\ for ( h = 0; h < m; h++ ) gets( s[h]) ; fun(s, m, p) ;

printf( \ is : %s\\n\}

45、给定程序MODI1.C中函数fun的功能是:根据整型形参n,计算如下公式的值。

47、给定程序MODI1.C中规定输入的字符串全部为字母,fun函数的功能是:统计a所指字符串中每个字母在字符串中出现的次数(统计时不区分大小写),并将出现次数最高的字母输出(如果有多个相同,输出一个即可)。 例如对于字符串:dadbcdbabdb,对应的输出应为:b或d。 请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include #include #include void fun(char a[]) { int b[26], i, n,max; for (i=0; i<26; i++)

/**********found**********/ a[i] = 0; n= strlen(a);

for (i=0; i

if (a[i] >='a' && a[i]<='z') /**********found**********/ b[a[i] - 'A']++;

else if (a[i] >='A' && a[i]<='Z') b[a[i] -'A']++; max = 0;

for (i=1; i<26; i++)

/**********found**********/ if (b[max] > b[i]) max=i;

printf(\出现次数最多的字符是 : %c\\n\}

main( )

{ char a[200];

printf(\请输入一个待统计的字符串 : \ scanf(\ fun(a); }

48、给定程序MODI1.C中函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。

例如,若输入:77777,则输出将是:32767。 请改正程序中的错误,使它能得出正确结果。

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

#include #include #include int fun( char *p ) { int n;

/**********found**********/ n= *P-'o'; p++;

while( *p!=0 ) {

/**********found**********/ n=n*8+*P-'o'; p++; }

return n; }

main()

{ char s[6]; int i; int n;

printf(\ \

if(strlen(s)>5){ printf(\ for(i=0; s[i]; i++) if(s[i]<'0'||s[i]>'7')

{ printf(\ printf(\ \ n=fun(s);

printf(\}

49、给定程序MODI1.C中函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。

例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。

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

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

fun(double *s, double *w)

例如,若 n=10,则应输出: 0.617977。

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

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

/************found************/ int fun ( int n ) { float A=1; int i;

/************found************/ for (i=2; i

main( ) { int n ;

printf(\ scanf(\

printf(\}

46、给定程序MODI1.C中函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如:若k = 10,则应输出:3628800。 请改正程序中的错误,使它能得出正确的结果。

注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include long fun ( int k) {

/************found************/ if k > 0

return (k*fun(k-1));

/************found************/ else if ( k=0 ) return 1L; else

return 1L; }

main()

{ int k = 10 ;

printf(\}

20

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库二级C语言上机考试复习资料,共有50套题目(4)在线全文阅读。

二级C语言上机考试复习资料,共有50套题目(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/573299.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: