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

2019-05-24 08:04

程序填空题

1.给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长 #include #define M 5 #define N 20 void fun(char (*ss)[N]) { int i, j, k=0, n, m, len; for(i=0; in) {

/**********found**********/ n=len; ___1___=i;} } for(i=0; i

/**********found**********/ for(j=___2___; j>=0; j--) ss[i][m--]=ss[i][j]; for(j=0; j

main(){char ss[M][N]={\\cchongqing\ i;

printf(\for(i=0; i

printf(\result:\\n\

for(i=0; i

printf(\参考答案

第一空:k 第二空len 第三空 ss[i][j]

2.给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长 #define M 5 #define N 20

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

int fun(char (*ss) ___1___, int *n) { int i, k=0, len=0; for(i=0; i

/**********found**********/ if(i==0) *n=___2___; if(len>*n) {

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

___3___;

k=i; } } return(k);} main()

{ char ss[M][N]={\\cchongqing\ n,k,i;

printf(\ string are :\\n\ for(i=0;i

printf(\ %d\\n\printf(\ %s\\n\第一空: [N] 第二空:len 第三空 *n=len

3.函数fun的功能是:把形参a所指数组中最大值放在a[0]中,接着求出a所指数组中最小值放在a[1]中;再把a所指数组元素中的次大值放在a[2]中,把a数组元素中次小值放在a[3]中;其余依次类推。例如:若a所指数组中的数组最初排列为:1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5.形参n中存放a所指数组中数据的个数. #include #define N 9

/**********found**********/ void fun(int ___1___, int n) { int i, j, max, min, px, pn, t; /**********found**********/ for (i=0; i

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

{ max = a[j]; px = j; } if (min > a[j])

{ min = a[j]; pn = j; }} if (px != i)

{ t = a[i]; a[i] = max;

a[px] = t;

if (pn == i) pn= px; }

if (pn != i+1)

{ t = a[i+1]; a[i+1] = min; a[pn] = t; }}} main()

{ int b[N]={1,4,2,3,9,6,5,8,7}, i;

printf(\ :\\n\ for (i=0; i

printf(\ :\\n\for (i=0; i

第一空:*a或a[N] 第二空:2 第三空:i+1

4.给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制过程中,把复制的内容输出到终端屏幕.主函数中源文件中入在变量sfname k ,目标文件名放在变量tfname中. #include

#include

int fun(char *source, char *target) { FILE *fs,*ft; char ch; /**********found**********/

if((fs=fopen(source, ___1___))==NULL) return 0;

if((ft=fopen(target, \ return 0;

printf(\ ch=fgetc(fs);

/**********found**********/ while(!feof(___2___)) { putchar( ch );

/**********found**********/ fputc(ch,___3___); ch=fgetc(fs); } fclose(fs); fclose(ft);

printf(\ 1;}

main(){char sfname[20] =\tfname[20]=\

FILE *myf; int i; char c; myf=fopen(sfname,\

printf(\ for(i=1; i<30; i++)

{c='A'+rand()%;fprintf(myf,\printf(\

fclose(myf);printf(\ if (fun(sfname, tfname))

printf(\ else printf(\

5.用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所表倍数;依次类推,直到所找的下一个数等于n为止。这样会得一个序列:2,3,5,7,11,13,17,19,23??函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。

#include int fun(int n)

{ int a[10000], i,j, count=0; for (i=2; i<=n; i++) a[i] = i; i = 2; while (i

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

for (j=a[i]*2; j<=n; j+=___1___) a[j] = 0; i++;

/**********found**********/ while (___2___==0) i++; }

printf(\ for (i=2; i<=n; i++)

/**********found**********/ if (a[i]!=___3___) {count++;

printf( count?\

return count;}

main(){ int n=20, r;r = fun(n);

printf(\ : %d\\n\第一空:a[i] 第二空:a[i] 第三空0

6.函数fun的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。例如:当a=3,b=5,c=4时,中数为4

#include

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

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

t = (a>b) ? (b>c? b :(a>c?c:___1___)) : ((a>c)?___2___ : ((b>c)?c:___3___)); return t;}

main(){ int a1=3, a2=5, a3=4, r; r = fun(a1, a2, a3);

printf(\ : %d\\n\第一空:a 第二空:a 第三空:b 7.函数fun的功能是:计算

f(x)?1?x?x2xn2!???n!

直到

xn?10?6n!。若x=2.5,函数值为:12.182494。 #include #include double fun(double x) { double f, t; int n;

/**********found**********/ f = 1.0+___1___; t = x; n = 1; do {

n++;

/**********found**********/ t *= x/___2___;

/**********found**********/ f += ___3___;

} while (fabs(t) >= 1e-6); return f;}

main(){ double x, y; x=2.5; y = fun(x);

printf(\

printf(\ y=%-12.6f \\n\第一空:x 第二空:n 第三空:t

8.给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长 #include #define M 5 #define N 20

void fun(char (*ss)[N])

{ int i, j, k, n[M]; char t[N]; for(i=0; i

/**********found**********/ for(j=___1___; jn[j]) ___2___; if(k!=i)

{ strcpy(t,ss[i]); strcpy(ss[i],ss[k]); /**********found**********/ strcpy(ss[k],___3___); n[k]=n[i]; } }} main()

{ char ss[M][N]={\\ int i;

printf(\ for(i=0; i

printf(\ for(i=0; i

第一空:i+1 第二空:k=j 第三空:t

9.函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。

# include #define N 9

void fun(int a[], int n)

{ int i,j, max, min, px, pn, t; for (i=0; i

{/**********found**********/ max = min = ___1___; px = pn = i;

for (j=i+1; j

{ max = a[j]; px = j; } /**********found**********/ if (min>___3___)

{ min = a[j]; pn = j; } } if (pn != i)

{ t = a[i]; a[i] = min; a[pn] = t; if (px == i) px =pn; } if (px != i+1)

{ t = a[i+1]; a[i+1] = max; a[px] = t; } }}

main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i;

printf(\ :\\n\

for (i=0; i

printf(\ :\\n\ for (i=0; i

第一空:a[i] 第二空:a[j] 第三空:a[j]

10.给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。 #include typedef struct { char name[10]; int age; }STD;

STD fun(STD std[], int n) { STD max; int i; /**********found**********/ max= ___1___; for(i=1; i

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

if(max.age<___2___) max=std[i]; return max;} main( )

{ STD std[5]={\

\ }; STD max; max=fun(std,5); printf(\/**********found**********/

printf(\ Age : %d\\n\ ___3___,max.age);}

第一空:*std 第二空:std[i].age 第三空:max.name 11.给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。 #include void fun(char *s) { int i, j=0, k=0; char t1[80], t2[80]; for(i=0; s[i]!='\\0'; i++)

if(s[i]>='0' && s[i]<='9'){ /**********found**********/ t2[j]=s[i]; ___1___; } else t1[k++]=s[i]; t2[j]=0; t1[k]=0;

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

for(i=0; i<___3___; i++) s[k+i]=t2[i];} main()

{ char s[80]=\ printf(\ string is : %s\\n\ fun(s);

printf(\ %s\\n\第一空:j++; 第二空:s[i]=t1[i];第三空:j

12.函数fun的功能是:把形参a所指数组中的奇数原顺序依次放到a[0]、a[1]、a[2]、??中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中数据为:9、1、3、5、7,返回值为5。

#include #define N 9 int fun(int a[], int n) { int i,j; j = 0;

for (i=0; i

/**********found**********/ if (a[i]%2==___1___){ /**********found**********/ a[j] = a[i]; ___2___; } /**********found**********/ return ___3___;} main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i, n; printf(\ :\\n\ for (i=0; i

printf(\ : %d \\n\ printf(\ :\\n\ for (i=0; i

printf(\第一空:1 第二空:j++ 第三空j 13.给定程序中,函数fun的功能是:对形参s所指字符串下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。

#include

void fun(char *s, char *p) { int i, j, n, x, t; n=0;

for(i=0; s[i]!='\\0'; i++) n++; for(i=1; i

/**********found**********/ ___1___;

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

for(j=___2___+2 ; js[j]) t=j; if(t!=i) { x=s[i]; s[i]=s[t]; s[t]=x; }}

for(i=1,j=0; i

{ char s[80]=\ printf(\ %s\\n\ fun(s,p);

printf(\ %s\\n\第一空:t=i 第二空:i 第三空 0

14.给定函数int MySearch(char *str,char *s)的功能是:统计字符串s在字符串str中出现的次数。例如,若输入字符串”12 123 12345”和”23”,则应输出2(表示字符串”23”在字符串”12 123 12345”中出现了两次)。若输入字符串”33333”和”33”,则应输出4(表示字符串”33”在字符串”33333”出现了四次)。 #include #include

int MySearch( char* str, char* s ){ char* p; int n =0; for( ; *str; )

/***************found***************/ if( ( p = strstr( str, s ) ) != ___1___ ) { n++; str=p+1; } else

/***************found***************/ ___2___;

/***************found***************/ return( ___3___ );} main()

{ char str1[81], str2[21];

printf(\ gets(str1);

printf(\ gets(str2);

printf( \are(is) appeared in str1 %d times\\n\第一空:NULL 第二空:*str=0 第三空:n

15.给定函数 char *MyDelete(char *str,char c)的功能是:在字符串str中删除变量c中的字符,有几个删几个,并返回所删字符的个数。例如,若输入字符串”ab abc bcdef”和字符?b?,则应输出字符串”a ac cdef”和3(表示删了3个字符?b?)。 #include #include

int MyDelete( char* str, char c ) { int i, j=0, k=0;

for( i = 0; str[i]; i++ ) if( str[i] != c )

/***************found**************/ { str[ j ]= str[i]; ___1___; } else k++;

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

str[j]=___2___ ;

/***************found**************/ return( ___3___ );} main(){

char string[81], x; ;

printf(\ gets(string);

printf(\ scanf(\

printf( \deleting %d '%c'(s), the string becomes:\\n%s\\n\第一空:j++ 第二空:0 第三空:k

16.给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据从小到大顺序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点仍保持从小到大顺序排序。 #include #include #define N 8 typedef struct list { int data;

struct list *next; } SLIST;

void fun( SLIST *h, int x) { SLIST *p, *q, *s;

s=(SLIST *)malloc(sizeof(SLIST)); /**********found**********/ s->data=___1___; q=h;

p=h->next;

while(p!=NULL && x>p->data) { /**********found**********/ q=___2___; p=p->next; } s->next=p;

/**********found**********/ q->next=___3___;} SLIST *creatlist(int *a)

{ SLIST *h,*p,*q; int i;

h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0; 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(\ else

{ printf(\

do{printf(\while(p!=NULL);

printf(\main()

{ SLIST *head; int x;

int a[N]={11,12,15,18,19,22,25,29}; head=creatlist(a);

printf(\

outlist(head);

printf(\ \

scanf(\ fun(head,x);

printf(\ outlist(head);}

第一空:x 第二空:p 第三空:s

17.给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。 #include #include

int fun(char *source, char *target) { FILE *fs,*ft; char ch; /**********found**********/

if((fs=fopen(source, ___1___))==NULL) return 0;

if((ft=fopen(target, \ return 0;

printf(\ ch=fgetc(fs);

/**********found**********/ while(!feof(___2___)) { putchar( ch );

/**********found**********/ fputc(ch,___3___); ch=fgetc(fs); } fclose(fs); fclose(ft); printf(\ return 1;} main()

{ char sfname[20] =\

tfname[20]=\

FILE *myf; int i; char c; myf=fopen(sfname,\

printf(\ for(i=1; i<30; i++)

{c='A'+rand()%;fprintf(myf,\printf(\

fclose(myf);printf(\ if (fun(sfname, tfname)) printf(\ else printf(\

第一空: “r” 第二空:fs 第三空:ft


计算机二级c语言上机 - 程序填空题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《统计学原理》习题集

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: