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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

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

第11套:
給定程序中,函數fun的功能是將帶頭結點的單向鏈表逆置。即若原鏈表中從頭至尾結點數據域依次為:2、4、6、8、10,逆置后,從頭至尾結點數據域依次為: 10、8、6、4、2。

請在程序的下劃線處填入正確的內容并把下劃線刪除, 使程序得出正確的結果。

注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!

給定源程序:

#include <stdio.h> #include <stdlib.h> #define N 5 typedef struct node { int data; struct node *next; } NODE; void fun(NODE *h) { NODE *p, *q, *r; p = h->__1__; if (p==__2__) return; q = p->next; p->next = NULL; while (q) { r = q->next; q->next = p; p = q; q = __3__; } h->next = p; } NODE *creatlist(int a[]) { NODE *h,*p,*q; int i; h = (NODE *)malloc(sizeof(NODE)); h->next = NULL; for(i=0; i<N; i++) { q=(NODE *)malloc(sizeof(NODE)); q->data=a[i]; q->next = NULL; if (h->next == NULL) h->next = p = q; else { p->next = q; p = q; } } return h; } void outlist(NODE *h) { NODE *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"); } } main() { NODE *head; int a[N]={2,4,6,8,10}; head=creatlist(a); printf("\nThe original list:\n"); outlist(head); fun(head); printf("\nThe list after inverting :\n"); outlist(head); }

解題思路:
本題是考察使用鏈表方法,對鏈表的結點數據進行降序排列。
第一處:使用結構指針p,來控制鏈表的結束,p必須指向h結構指針的next指針,來定位p的初始位置。所以應填寫:h->next。
第二處:判斷p指針是否結束,所以應填寫:0。
第三處:q指向原q的next指針,所以應填:r。


給定程序MODI1.C中函數fun的功能是: 計算s所指字符串中含有t所指字符串的數目, 并作為函數值返回。
請改正函數fun中指定部位的錯誤, 使它能得出正確的結果。
注意: 不要改動main函數, 不得增行或刪行, 也不得更改程序的結構!

給定源程序:

#include <stdio.h> #include <string.h> #define N 80 int fun(char *s, char *t) { int n; char *p , *r; n=0; while ( *s ) { p=s; r=p; while(*r) if(*r==*p) { r++; p++; } else break; if(*r= 0) n++; s++; } return n; } main() { char a[N],b[N]; int m; printf("\nPlease enter string a : "); gets(a); printf("\nPlease enter substring b : "); gets( b ); m=fun(a, b); printf("\nThe result is : m = %d\n",m); }

解題思路:
第一處: 程序中子串是由變量t來實現的,再根據下面while循環體中語句可知,所以應改為:r=t;。
第二處: 是判斷相等的條件,所以應改為:if(*r==0)。


請編寫函數fun, 函數的功能是: 將放在字符串數組中的M個字符串(每串的長度不超過N), 按順序合并組成一個新的字符串。函數fun中給出的語句僅供參考。
例如, 字符串數組中的M個字符串為
AAAA
BBBBBBB
CC
則合并后的字符串的內容應是: AAAABBBBBBBCC。
提示:strcat(a,b)的功能是將字符串b復制到字符串a的串尾上,成為一個新串。
注意:部分源程序在文件PROG1.C中。
請勿改動主函數main和其它函數中的任何內容, 僅在函數fun的花括號中填入你編寫的若干語句。

給定源程序:

#include <stdio.h> #define M 3 #define N 20 void fun(char a[M][N], char *b) { int i; *b=0; } main() { char w[M][N]={"AAAA","BBBBBBB","CC"}, a[100]; int i ; printf("The string:\n"); for(i=0; i<M; i++)puts(w[i]); printf("\n"); fun(w,a); printf("The A string:\n"); printf("%s",a);printf("\n\n"); NONO(); }

解題思路:
本題是考察字符串的操作。
使用for循環以及C語言函數strcat依次連接起來。

參考答案:

#include <stdio.h> #define M 3 #define N 20 void fun(char a[M][N], char *b) { int i; *b=0; for(i = 0 ; i < M ; i++) strcat(b, a[i]); } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

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

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