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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

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

第93套:

給定程序中已建立一個帶有頭結點的單向鏈表,在main函數中將多次調用fun 函數,每調用一次fun函數,輸出鏈表尾部結點中的數據,并釋放該結點,使鏈表 縮短。
請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
給定源程序:

#include <stdio.h> #include <stdlib.h> #define N 8 typedef struct list { int data; struct list *next; } SLIST; void fun( SLIST *p) { SLIST *t, *s; t=p->next; s=p; while(t->next != NULL) { s=t; t=t->___1___; } printf(" %d ",___2___); s->next=NULL; free(___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("\nThe list is NULL!\n"); else { printf("\nHead"); do { printf("->%d",p->data); p=p->next; } while(p!=NULL); printf("->End\n"); } } main() { SLIST *head; int a[N]={11,12,15,18,19,22,25,29}; head=creatlist(a); printf("\nOutput from head:\n"); outlist(head); printf("\nOutput from tail: \n"); while (head->next != NULL){ fun(head); printf("\n\n"); printf("\nOutput from head again :\n"); outlist(head); } }

解題思路:
本題是對已經建立的鏈表,通過調用一次函數就輸出鏈表尾部的數據。程序中共有三處要填上適當的內容,使程序能運行出正確的結果。
第一處:由于本題要求輸出鏈表尾部的數據,函數是利用while循環語句找出鏈表尾部的指針并存入臨時變量s中,那么每循環一次就要判斷鏈表是否已結束位置,如果是,則退出循環,進行輸出,由于是通過t指針變量進行操作的,因此,都要取t的next指針重新賦給t來實現,所以本處應填next。
第二處:輸出最后一個結點的數據,所以應填t->data或(*t).data。
第三處:輸出出最后一個結點數據后,并把此結點刪除了,程序要求釋放內存,所以應填t。


給定程序MODI1.C中函數fun的功能是:將字符串中的字符按逆序輸出,但不改變字符串中的內容。
例如,若字符串為abcd,則應輸出:dcba。
請改正程序中的錯誤,使它能計算出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!
給定源程序:

#include <stdio.h> fun (char a) { if ( *a ) { fun(a+1) ; printf("%c" *a) ; } } main( ) { char s[10]="abcd"; printf("處理前字符串=%s\n處理后字符串=", s); fun(s); printf("\n") ; }

解題思路:
第一處:形參a應定義為字符串指針。
第二處:語句中缺少逗號。


請編寫一個函數fun,它的功能是:比較兩個字符串的長度,(不得調用C語言提供的求字符串長度的函數),函數返回較長的字符串。若兩個字符串長度相同,則返回第一個字符串。
例如,輸入beijing shanghai (為回車鍵), 函數將返回shanghai。
注意: 部分源程序存在文件PROG1.C中。
請勿改動主函數main和其它函數中的任何內容,僅在函數fun的花括號中填入
你編寫的若干語句。
給定源程序:

#include <stdio.h> char *fun ( char *s, char *t) { } main( ) { char a[20],b[20]; printf("Input 1th string:") ; gets( a); printf("Input 2th string:") ; gets( b); printf("%s\n",fun (a, b )); NONO (); }

解題思路:
本題是比較兩個字符串的長度并按要求返回字符串。
我們給出的程序是使用for循環來判斷兩個字符串中哪一個比較長或相等,循環的終止值為兩個字符串中是否字符串結束符,如果有,則退出循環體。接下來再判斷兩個字符串是否同時出現結束符,則返回第一個字符串s,如果不沒有同時出現,則判斷哪一個字符串先有結束符,則按要求返回指定的字符串。
參考答案:

char *fun ( char *s, char *t) { int i; char *p=s, *q=t; for(i=0;*p && *q; i++) { p++; q++; } if(*p == 0 && *q == 0) return s ; if(*p) return s ; else return t ; }

總結

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

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