日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

全国计算机等级考试题库二级C操作题100套(第54套)

發布時間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全国计算机等级考试题库二级C操作题100套(第54套) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第54套:

給定程序中,函數fun的功能是:計算出帶有頭結點的單向鏈表中各結點數據域中值之和作為函數值返回。
請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
給定源程序:

#include <stdio.h> #include <stdlib.h> #define N 8 typedef 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) { s+= p->___1___; p=p->___2___; } return s; } main() { SLIST *head; int a[N]={12,87,45,32,91,16,20,48}; head=creatlist(a); outlist(head); / printf("\nsum=%d\n", fun(___3___)); } 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"); } }

解題思路:
本題是計算出帶有頭結點的單向鏈表中各結點數據域中值之和。
第一處:累加數據域中的值,所以應填:data。
第二處:指定p的下一個指針,所以應填:next。
第三處:函數調用,在主函數中已經給出了head,所以應填:head。


給定程序MODI1.C中函數fun的功能是:將s所指字符串中出現的與t1所指字符串相同的子串全部替換成t2所指字符串,所形成的新串放在w所指的數組中。在此處,要求t1和t2所指字符串的長度相同。例如,當s所指字符串中的內容為:“abcdabfab”,t1所指子串中的內容為:“ab”,t2所指子串中的內容為:"99"時, 結果在w所指的數組中的內容應為: “99cd99f99”。
請改正程序中的錯誤,使它能得出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!
給定源程序:

#include <stdio.h> #include <string.h> int fun (char *s, char *t1, char *t2 , char *w) { int i; char *p , *r, *a; strcpy( w, s ); while ( *w ) { p = w; r = t1; while ( r ) if ( *r == *p ) { r++; p++; } else break; if ( *r == '\0' ) { a = w; r = t2; while ( *r ){ *a = *r; a++; r++ } w += strlen(t2) ; } else w++; } } main() { char s[100], t1[100], t2[100], w[100]; printf("\nPlease enter string S:"); scanf("%s", s); printf("\nPlease enter substring t1:"); scanf("%s", t1); printf("\nPlease enter substring t2:"); scanf("%s", t2); if ( strlen(t1)==strlen(t2) ) { fun( s, t1, t2, w); printf("\nThe result is : %s\n", w); } else printf("Error : strlen(t1) != strlen(t2)\n"); }

解題思路:
第一處:判斷字符串當前字符是否是字符串結束符,所以應改為:while(*r)。
第二處:語句后缺少分號。


函數fun的功能是:將s所指字符串中下標為偶數的字符刪除,串中剩余字符形成的新串放在t所指數組中。
例如,當s所指字符串中的內容為:“ABCDEFGHIJK”,
在t所指數組中的內容應是:“BDFHJ”。
注意: 部分源程序存在文件PROG1.C中。
請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入
你編寫的若干語句。
給定源程序:

#include <stdio.h> #include <string.h> void fun(char *s, char t[]) { } main() { char s[100], t[100]; printf("\nPlease enter string S:"); scanf("%s", s); fun(s, t); printf("\nThe result is: %s\n", t); NONO(); }

解題思路:
本題是從一個字符串按要求生成另一個新的字符串。我們使用for循環語句來解決這個問題。
參考答案:

void fun(char *s, char t[]) { int i, j = 0 ; for(i = 1 ; i < strlen(s); i+=2) t[j++] = s[i] ; t[j] = 0 ; } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的全国计算机等级考试题库二级C操作题100套(第54套)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。