![2020年華中科技大學(xué)C語言程序設(shè)計(jì)試卷_第1頁](http://file4.renrendoc.com/view12/M0A/03/1C/wKhkGWZIu6qAf3WGAAHhFkslrqY853.jpg)
![2020年華中科技大學(xué)C語言程序設(shè)計(jì)試卷_第2頁](http://file4.renrendoc.com/view12/M0A/03/1C/wKhkGWZIu6qAf3WGAAHhFkslrqY8532.jpg)
![2020年華中科技大學(xué)C語言程序設(shè)計(jì)試卷_第3頁](http://file4.renrendoc.com/view12/M0A/03/1C/wKhkGWZIu6qAf3WGAAHhFkslrqY8533.jpg)
![2020年華中科技大學(xué)C語言程序設(shè)計(jì)試卷_第4頁](http://file4.renrendoc.com/view12/M0A/03/1C/wKhkGWZIu6qAf3WGAAHhFkslrqY8534.jpg)
![2020年華中科技大學(xué)C語言程序設(shè)計(jì)試卷_第5頁](http://file4.renrendoc.com/view12/M0A/03/1C/wKhkGWZIu6qAf3WGAAHhFkslrqY8535.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGE213/13華中科技大學(xué)計(jì)算機(jī)類(Ⅱ)2020~2021學(xué)年第一學(xué)期“C語言程序設(shè)計(jì)”考試試卷(A卷)考試方式:閉卷考試日期:_2021年1月5日_考試時(shí)長:__150__分鐘專業(yè)班級:______________學(xué)號:______________姓名:______________題號一二三四五六七八九十總分分?jǐn)?shù)注意:試卷后面附有運(yùn)算符的優(yōu)先級和結(jié)合性表。試卷所有問題都假設(shè)基于32位的系統(tǒng)。分?jǐn)?shù)評卷人解答內(nèi)容不得超過裝訂線單項(xiàng)選擇題(在下面每小題的A、B、C、D四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請選擇正確的選項(xiàng)并填寫到括號內(nèi),選擇正確得分。本大題共16小題,每小題1分,共16分。)解答內(nèi)容不得超過裝訂線解答內(nèi)容不得超過裝訂線1、下列各組標(biāo)識符正確的是: 【解答內(nèi)容不得超過裝訂線A、 x_a,1_a B、π,t C、a.c,N D、China,_1A2、設(shè)main函數(shù)的函數(shù)原型為:intmain(intm,char*v[]);如果命令行是:Iaminaquiz,則以下說法錯誤的是: 【】A、 m=5 B、v[1][1]=‘m’; C、v[3]指向“a” D、函數(shù)形參名錯誤3、如果當(dāng)t為奇數(shù)時(shí)表達(dá)式的值為“真”,t為偶數(shù)時(shí)表達(dá)式的值為“假”。則以下不能滿足上述條件的表達(dá)式是【】A、t%2==1 B、!(t%2) C、!(t%2==0) D、t%24、設(shè)有聲明:inti=2,j=3;那么執(zhí)行語句:i>=j&&--i||j++;之后,變量i和j的值分別為。 【】A、2,3 B、1,4 C、2,4 D、1,35、以下程序片段中,while循環(huán)體執(zhí)行的次數(shù)是。 【】inti=10,j=0;while(i>j){i--;j++;if(i=j)break;};A、0 B、1 C、 5 D、死循環(huán)6、以下表達(dá)式的值為“假”的是: 【】 A、sizeof(‘A’)==4 B、-2>1u C、!(0xffff)==0; D、('\x20'<<4)>>4==07、以下正確的聲明語句是: 【】A、inta[10],p=a; B、inta[10][20],(*p)[10]=a;C、inta[5][6],*p[6]=a; D、inta[1][2],(*p)[2]=a;8、設(shè)字符數(shù)組chara[]=“123\ta\\bc”,則表達(dá)式sizeof(a)的值為: 【】A、1 B、9 C、10 D、49、在C語言中,如果按照數(shù)據(jù)存儲的格式劃分,文件可分為:【】A、程序文件和數(shù)據(jù)文件 B、磁盤文件和設(shè)備文件 C、二進(jìn)制文件和文本文件 D、順序文件和磁盤文件10、如果要使用函數(shù)scanf("%c,%c,%c",&a,&b,&c);語句讀入三個(gè)字符‘1’、‘2’、‘3’到變量a、b、c中,正確的輸入序列是: 【】A、123 B、123 C、1,2,3 D、1、2、311、基于聲明:inta[][2]={1,2,3},b[10],c[3][2],d[3][4];,下列說法正確的是: 【】A、數(shù)組a只包含3個(gè)元素B、數(shù)組b可以用來保存數(shù)組d中的所有元素C、數(shù)組c中的元素可表示為c[0][0],c[0][1],c[0][2],c[1][0],c[1][1],c[1][2]D、數(shù)組d中包含三個(gè)一維數(shù)組12、設(shè)有宏定義:#defineputchar(c)fputc(c,stdin),則以下說法錯誤的是: 【】A、宏展開前,fputc(c,stdin)是字符串 B、宏展開后,stdin的類型為FILE*C、putchar和c是標(biāo)識符 D、define是關(guān)鍵字13、設(shè)有如下類型定義和變量的聲明,typedefstruct{floatx,y;}_point;_pointpoint0={1.0,1.0};const_pointpoint1,*p1=&point1;const_pointpoint2,*constp2=&point2;則以下各語句中合法的是: 【】 A、*p1=point0; B、p1=&point0;C、*p2=point0; D、p2=&point0;14、給定下面的結(jié)構(gòu)定義和聲明:structstu{ intnum;doublescore;charname[12];}m,n,*p,*q;,則下列語句中不會產(chǎn)生編譯錯誤的是: 【】A、p=m; B、m.score=n.num;C、p.num=10;D、*="Tom";15、按如下方式打開已存在的文件a.dat,不會清除原有內(nèi)容的語句為 : 【】A、f=fopen(“a.dat”,“w”); B、f=fopen(“a.dat”,“w+”);C、f=fopen(“a.dat”,“w+b”); D、f=fopen(“a.dat”,“a+”);16、十進(jìn)制數(shù)8和-2在8位機(jī)中的補(bǔ)碼表示分別為: 【】 A、00001000,11111110; B、00001000,10000010;C、10001000,00000010; D、10001000,01111110;分?jǐn)?shù)評卷人填空題(本大題共10小題,每小題1分,共10分。)1、本大題的第1題至第5題請參考下面的說明,寫出各表達(dá)式的值。各題的表達(dá)式相互無關(guān)。structSTU{intNum;charName[6];}s[]={{1,”Tom”},{3,”Jerry”}},*p=s;題號表達(dá)式值1++p->Num2++(*p->Name)3*p++->Name4*(++p)->Name+15sizeof(structSTU)2、本大題的第6題至第10題請參考下面的說明,寫出各表達(dá)式的值。各題的表達(dá)式相互無關(guān)。unsignedchara=4,b=8,c;unsignedshortx=0x800A,y=12;#defineBa+y題號表達(dá)式值6a|++b7c=x<<48a^b>>29B/210!x||b!=a分?jǐn)?shù)評卷人判斷改錯題(首先明確指出下面各題代碼或描述是否存在錯誤;若存在錯誤,指出錯誤,然后改正錯誤或給出修改方法。本大題共8小題,每小題2分,共16分。)1、以下程序?qū)崿F(xiàn)字符串拷貝,將a中的字符串拷貝給指針p所指向的內(nèi)存單元,使程序輸出結(jié)果為:thereisaboatonthelake.#include"stdio.h"#include"string.h"intmain(){char*p,a[60]="thereisaboatonthelake.";printf("%s\n",strcpy(p,a));return0;}2、下面的程序依次輸出structLIST類型變量d,e,f的成員。#include<stdio.h>voiddisp(structLISTs){ printf("%d,%d\n",s.a,s.b);}intmain(){ structLIST{ inta,b; }d={3,9},e={2,8}; LISTf={5,6}; disp(d);disp(e); printf("%d,%d\n",f.a,f.b);return0;}3、以下程序片段以只寫方式打開文件HUST.dat,并向文件寫入字符串“SCSE”。FILE*fp;fp=fopen(“HUST.dat”,“w”);if(fp!=EOF) fputs(“SCSE”,fp);fclose(fp);4、以下程序片段實(shí)現(xiàn)利用指針p輸入一行字符串到字符數(shù)組str中,回車結(jié)束輸入。charstr[100],*p;for(p=str;(*++p=getchar())!='\n';);*p='\0';5、以下函數(shù)是對已按升序排列的整數(shù)表執(zhí)行二分查找。函數(shù)的輸入包括一個(gè)指向表頭的指針、表中的元素個(gè)數(shù)以及待查找的數(shù)值。函數(shù)的輸出是一個(gè)指向滿足查找要求的元素的指針;當(dāng)未查找到要求的數(shù)值時(shí),輸出一個(gè)NULL指針。int*bsearch(int*t,intn,intx){ int*lo=t,*hi=t+n; while(lo<hi){ int*mid=(hi+lo)/2; if(x<*mid) hi=mid; elseif(x>*mid) lo=mid+1; else returnmid; } returnNULL;}6、以下程序?qū)崿F(xiàn)將字符str的第一個(gè)字節(jié)修改為大寫,然后輸出字符串str串拷貝,使程序輸出結(jié)果為:Thereisaboatonthelake.#include"stdio.h"intmain(void){char*str="thereisaboatonthelake.";str[0]+=‘A’-‘a(chǎn)’;printf("%s\n",str);return0;}7、以下函數(shù)用于判斷year是不是閏年,是閏年返回1,不是返回0。(閏年的判斷方法:能被4整除且不能被100整除的年份,或者能被400整除的年份)intisLeapYear(intyear){if((!(year%4)&&year%100)|(!(year%400)))return1;elsereturn0;}8、以下程序?qū)崿F(xiàn)利用指針p動態(tài)創(chuàng)建具有N個(gè)結(jié)點(diǎn)的單鏈表,將頭指針head指向所創(chuàng)建鏈表的第一個(gè)節(jié)點(diǎn),并遍歷該鏈表輸出每個(gè)節(jié)點(diǎn)中的data值。#include<stdio.h>#include<malloc.h>#defineN3structs_list{ intdata;structs_list*next;}*head=NULL,*p;head=(structs_list*)malloc(sizeof(structs_list));intmain(void){ p=head;p->data=0;for(inti=1;i<N-1;){ p->next=(structs_list*)malloc(sizeof(structs_list)); p=p->next;p->data=++i; }p->next=NULL;p=head;while(p){ printf("%p\t%d\t%p\n",p,p->data); p=p->next;free(head);head=p; } return0;}分?jǐn)?shù)評卷人簡答題(本大題共5小題,每小題4分,共20分)1、寫一個(gè)表達(dá)式,比較整型數(shù)組a的第一個(gè)元素和最后一個(gè)元素的大小,當(dāng)?shù)谝粋€(gè)元素大于等于最后一個(gè)元素時(shí),表達(dá)式的值為-1,否則為1。2、關(guān)鍵字static的作用是什么?3、寫一個(gè)表達(dá)式,交換一個(gè)unsignedshortint類型的變量x的高字節(jié)和低字節(jié),比如交換前如果x的值為0x2021,那么交換后x的值為0x2120。4、設(shè)有如下結(jié)構(gòu)體和變量說明,structcnode{charc;structcnode*next;}*r,*s,*t;其中r,s,t依次指向鏈表中的三個(gè)連續(xù)節(jié)點(diǎn)?,F(xiàn)要在保證鏈表連續(xù)的前提下將s和t的位置互換,請寫出實(shí)現(xiàn)該功能的代碼片段,要求采用改變結(jié)點(diǎn)的連接實(shí)現(xiàn)結(jié)點(diǎn)的交換(不得出現(xiàn)除r,s,t之外的其它變量)。5、分別寫出以下語句的含義。intf();int*f();int(*f)();int(*(*f)())[2];分?jǐn)?shù)評卷人五、閱讀程序并寫出其運(yùn)行結(jié)果,請注意輸出結(jié)果的格式(本大題共6小題,每小題3分,共18分。)1、請寫出下面程序的運(yùn)行結(jié)果。#include<stdio.h>intmain(void){ charch[7]="2345"; inti=0,s=0; while(ch[i++]) s=10*s+ch[i]-'0'; printf("%d",s);return0;} 運(yùn)行結(jié)果:2、請寫出下面程序的運(yùn)行結(jié)果。#include<stdio.h>inta=3,b=2;voidf(int*u,inth){staticintc=1;a+=c++; b+=a;*u++; h=h+*--u;}intmain(void){inta,h,u;a=h=u=1;f(&u,h);f(&a,h);printf("%d,%d,%d,%d",a,b,h,u);return0;} 運(yùn)行結(jié)果:3、請寫出下面程序的運(yùn)行結(jié)果。#include<stdio.h>intmain(void){charc;while((c=getchar())!='\n'){ if(c>='0'&&c<='9') continue;switch(c-'a'){default:putchar(c+5);case0:case1:putchar(c+3);case2:putchar(c+4);}}return0;}運(yùn)行程序后輸入數(shù)據(jù):2a7k↙,其中↙代表一個(gè)回車符。 運(yùn)行結(jié)果:4、請寫出下面程序的運(yùn)行結(jié)果。#include<stdio.h>voidfun(inta[],inti,intj){ intt; if(i<j){ fun(a,i+1,j-2); t=a[i];a[i]=a[j];a[j]=t; }}intmain(void){ inti,a[6]={1,2,3,4,5}; fun(a,0,5); for(i=0;i<6;i++) printf("%d,",a[i]);return0;} 運(yùn)行結(jié)果:5、請寫出下面程序的運(yùn)行結(jié)果。#include<stdio.h>#include<string.h>voidtest(chara[][10],char*b[],char*p){p=&b[1][2];strcpy(a[0],b[0]);*a[1]=*p;*(*(a+1)+1)=*(p+1); a[1][2]='\0';}intmain(){charstr[10][10],*y[10]={"HUST","Hello"},*px;px=y[1];test(str,y,px);printf("%s\n%s",str[0],str[1]);return0;} 運(yùn)行結(jié)果:6、請寫出下面程序的運(yùn)行結(jié)果。#include<stdio.h>structw{charlow;charhigh;};unionu{structwbyte;shortword;}uw;intmain(){ intresult; uw.word=0x1234; printf("highbyte:%02x\n",uw.byte.high); uw.byte.low=0x74; printf("word:%04x\n",uw.word); result=uw.word+0x2a34; printf("result:%04x\n",result); return0;} 運(yùn)行結(jié)果:分?jǐn)?shù)評卷人六、完善程序(本小題有3小題,給出的都是部分程序,通過填空來完善程序。本大題共10空,每空2分,共20分。)1、本小題第①、②、③空參閱下面的程序片段。[程序說明]以下程序利用大小為N的指針數(shù)組指向用gets函數(shù)輸入的N行,每行不超過80個(gè)字符。函數(shù)compress將每一行中連續(xù)的多個(gè)空格字符壓縮為一個(gè)空格字符,在main函數(shù)種調(diào)用compress函數(shù)輸出壓縮空格后的各行,空行不予輸出。請將下面程序中①、②、③處應(yīng)該完善的內(nèi)容填寫在本小題后①、②、③后面的下劃線處。#include<stdio.h>#include<stdlib.h>#defineN3voidcompress(char*a);intmain(){inti;char*p[N];for(i=0;i<N;i++){①gets(p[i]);}for(i=0;i<N;i++){compress(*(p+i));②}return0;}voidcompress(char*a){inti;for(i=0;③;i++){printf("%c",*(a+i));if(a[i]==''){while(*(a+i)=='')i++;i--;}}if(*a!='\0')printf("\n");}2、本小題第④、⑤空參閱下面的程序片段。[程序說明]以下函數(shù)climb求解“上樓梯問題”,假設(shè)樓梯有n階臺階,上樓可以一步上1階,也可以一步上2階,求所有不同走法的數(shù)量。請將下面程序中④、⑤處應(yīng)該完善的內(nèi)容填寫在本小題后④、⑤后面的下劃線處。intclimb(intn){if(n==0||n==1||n==2)④⑤}3、本小題第⑥、⑦、⑧、⑨、⑩空參閱下面的程序。請將下面程序中⑥、⑦、⑧、⑨、⑩處應(yīng)該完善的內(nèi)容填寫在本小題后⑥、⑦、⑧、⑨、⑩后面的下劃線處。[程序說明]求解N皇后問題。在N×N的棋盤上擺放N個(gè)皇后,使任意兩個(gè)皇后不能在同一行、同一列、同一對角線上。以下程序基于二維數(shù)組表示N×N(N取值1-20)棋盤,采用的算法步驟如下:(a)對N行中的每一行(從第0行開始),對某一行的每一列(從第0列開始)進(jìn)行探測,來決定是否可以放置皇后。(b)對某行m某列n,如果探測皇后不沖突,則可在m行n列放置一個(gè)皇后。(c)如果m行已經(jīng)是最后一行,則說明找到一個(gè)解,輸出解。此時(shí)不能結(jié)束程序,應(yīng)該清除在步驟(b)放置的m行n列的皇后,繼續(xù)探測m行剩下的列,轉(zhuǎn)步驟(b)。(d)在m行n列放置了皇后的前提下,如m行不是最后一行,則繼續(xù)探測m+1行的皇后位置。(e)在已經(jīng)探測完m行所有的列都沒有找到可以放置皇后的位置的前提下,(e1)如果m行已經(jīng)是第0行,程序執(zhí)行結(jié)束。(e2)如果m行不是第0行,此時(shí)就應(yīng)該把m-1皇后的位置往后移一列,轉(zhuǎn)步驟(b)。#include"stdio.h"#definemaxsize20intsearch(int(*p)[maxsize],intsize,introw,intcol){intret=0,i;for(i=0;i<row&&!ret;i++)if(⑥)ret=1; for(i=1;row-i>=0&&col-i>=0&&!ret;i++)if(p[row-i][col-i]==1)ret=1;for(i=1;row-i>=0&&col+i<size&&!ret;i++)if(p[row-i][col+i]==1)ret=1;returnret;}voidoutsolution(int*p,intsize){inti,j;staticintsolution_num=1;printf("解%d:\n\n",solution_num++);for(i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)品買賣合同書
- 康雙的離婚協(xié)議書
- 三農(nóng)村生態(tài)建設(shè)實(shí)施指南
- 工程監(jiān)理承包合同
- 云計(jì)算在企業(yè)IT架構(gòu)中應(yīng)用教程
- 運(yùn)動訓(xùn)練方法與技巧指南
- 軟件測試流程與質(zhì)量保障作業(yè)指導(dǎo)書
- 臨設(shè)工程勞務(wù)分包合同
- 網(wǎng)絡(luò)安全威脅防范與應(yīng)對作業(yè)指導(dǎo)書
- 鋼渣購銷合同
- 火龍罐綜合灸療法
- 安全生產(chǎn)的科技創(chuàng)新與成果轉(zhuǎn)化應(yīng)用
- 紅色中國風(fēng)西安旅游PPT模板
- 英語課堂游戲PPT-英語游戲4個(gè)PPT-(切西瓜-打地鼠-開火車-植物大戰(zhàn)僵尸)
- 皮內(nèi)注射技術(shù)操作考核評分標(biāo)準(zhǔn)
- 大學(xué)物理光學(xué)總結(jié)-大學(xué)物理光學(xué)知識點(diǎn)總結(jié)課件
- 個(gè)人借條電子版模板
- 物業(yè)公司特色服務(wù)、日常增值服務(wù)項(xiàng)目供參考
- 創(chuàng)新創(chuàng)業(yè)實(shí)務(wù)PPT全套完整教學(xué)課件
- 工業(yè)企業(yè)電源快速切換裝置設(shè)計(jì)配置導(dǎo)則
- 某有限公司雙螺紋偏轉(zhuǎn)型防松防盜螺母商業(yè)計(jì)劃書
評論
0/150
提交評論