C語言設計歷年試卷 2011春季c語言試卷B(張巖 許海燕)-xuhy格式調整完畢 (1)學習資料_第1頁
C語言設計歷年試卷 2011春季c語言試卷B(張巖 許海燕)-xuhy格式調整完畢 (1)學習資料_第2頁
C語言設計歷年試卷 2011春季c語言試卷B(張巖 許海燕)-xuhy格式調整完畢 (1)學習資料_第3頁
C語言設計歷年試卷 2011春季c語言試卷B(張巖 許海燕)-xuhy格式調整完畢 (1)學習資料_第4頁
C語言設計歷年試卷 2011春季c語言試卷B(張巖 許海燕)-xuhy格式調整完畢 (1)學習資料_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C語言程序設計筆試試題(A卷)第11頁(共14頁)哈爾濱工業大學(威海)2011/2012學年春季學期C語言程序設計筆試試題(B卷)題號一二三四五六筆試(70%)綜合(30%)總分分數號學號學名姓1.筆試卷面總分100分,取卷面成績的70%計入總分;2.綜合成績為平時成績(10%)和實驗成績(20%)之和,占總分的30%;3.答題時禁止拆開試卷釘,試卷背面即為草稿紙;4.答題時間105分鐘。一、單項選擇題。請把答案填入下面框中,不允許出框線。(本題16分,每小題1分)題號12345678答案題號910111213141516答案注意行為規范注意行為規范遵守考試紀律main(){intx=10,y=3;printf("%d\n",y=x/y);}A)0B)1C)3D)不確定的值2.下列函數的功能是______。intfun1(char*x){char*y=x;教研室主任簽字:while(*y++);教研室主任簽字:return(y-x-1);}A)求字符串的長度B)將字符串X連接到字符串Y后面C)將字符串X復制到字符串YD)比較兩個字符串的大小3.以下對C語言函數的有關描述中,正確的是______。A)C程序中有調用關系的所有函數必須放在同一個源程序文件中B)C函數既可以嵌套定義又可以遞歸調用C)調用函數時,實參的值傳送給形參D)函數必須有返回值4.若用數組名作為函數調用的實參,傳遞給形參的是______。A)數組的首地址B)數組第一個元素的值C)數組中全部元素的值D)數組元素的個數5.若有以下定義,則p+5表示_______.inta[10],*p=a;A)元素a[5]的地址B)元素a[5]的值C)元素a[6]的地址D)元素a[6]的值6. 以下選項中,與k=n++完全等價的表達式是_______。A)n=n+1,k=nB)k=n,n=n+1C)k=++nD)k+=n+17.如果在一個函數中的復合語句中定義了一個變量,則該變量_______。A)只在該復合語句中有效B)在該函數中有效C)在本程序范圍內均有效D)為非法變量8.定義一個結構體變量時,系統分配給它的內存大小是_______。A)成員中占內存量最大者所需的容量B)各成員所需內存量的總和C)結構中第一個成員所需內存容量D)結構中最后一個成員所需內存容量9.在C程序中,使用結構體的目的是______。A)將一組相關的數據作為一個整體,以便程序使用。B)將一組相同數據類型的數據作為一個整體,以便程序使用。C)將一組數據作為一個整體,以便其中的成員共享存儲空間。D)將一組數值一一列舉出來,該類型變量的值只限于列舉的數值范圍內。10.判斷字符串s1與字符串s2相等,應當使用______。A)if(s1=s2)B)if(strcmp(s1,s2))C)if(!strcmp(s1,s2))D)if(strcmp(s1,s2)=0)11.若有定義int*p[4],則標識符p是一個______。A)指向整型變量的指針變量B)指向函數的指針變量C)指向有四個整型元素的一維數組的指針變量D)指針數組名,有四個元素,每個元素均為一個指向整型變量的指針12.設有以下定義: inta[3][3]={1,2,3,4,5,6,7,8,9}; int(*ptr)[3]=a,*p=a[0]; 則以下能夠正確表示數組元素a[1][2]的表達式是______。A)*((*ptr+1)[2]) B)*(*(p+5))C)(*ptr+1) D)*(*(a+1)+2)13.在函數中未指定存儲類別的局部變量,其隱含的存儲類別是_______。A)靜態(static) B)外部(extern)C)自動(auto) D)寄存器(register)14.以下錯誤的描述是________。A) 不同的函數中可以使用相同名字的變量,互不干擾B) 形式參數都是局部變量C) 一個C程序只包含一個函數D) C語言中的函數參數傳遞都是單向值傳遞15.以下對二維數組進行正確初始化的是________。 A)inta[2][3]={{1,2},{3,4},{5,6}};B)inta[2][]={1,2,3,4,5,6};C)inta[][3]={1,2,3,4,5,6};D)inta[2][]={{1,2},{3,4}};16.設有如下定義: structst { inta; floatb;}st1,*pst;若有pst=&st1;則下面引用正確的是________。A) (*pst.st1.b)B)(*pst).bC) pst->st1.b D)pst.st1.b二、填空題。請按序號把答案填入下面框中,不允許出框線。(本題20分,每空2分)題號答案題號答案162738495101.下面程序的功能是要把1~90之間的不能被3整除的數輸出。請補全。main(){intn;【1】{if(n%3==0)continue;printf("%d",n);}}2.下面程序可求出矩陣a的主對角線上的元素之和,請填空。main(){inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)if(_【2】____)sum=sum+___【3】_____;printf("sum=%d\n",sum);}3.假設變量a和b均為整型,以下語句可以不借助任何變量把a、b中的值進行交換。請填空。a+=【4】;b=a-【5】;a-=【6】;4.遞歸方式求階乘,請填空:longfac(intn) {longf;if(n<0)printf("n<0,dataerror!");elseif(【7】)f=1;elsef=【8】return(f);}5.以下程序段的功能是統計鏈表中結點的個數,其中first為指向第一個結點的指針(鏈表不帶頭結點)。請在______內填入正確內容。structlink{chardata;structlink*next;};structlink*p,*first;intc=0;p=first;while(p!=NULL){__【9】_____;p=____【10】___;}三、請把下列程序運行結果填入答案框中,不允許出框線,用“↙”表示回車。(本題24分,每小題3分)題號12345678答案1.main(){inti=2; intj=3; intk=0; intans=((i==1)&&(j==3||(k=k+1))); printf("%d%d",ans,k);}2.#include<stdio.h>intfun(inta,intb,intc){ intd=0; d=a*b-c; returnd;}voidmain(){ inta=1,b=2,c=3; printf("%d",fun(a,b,c)); printf("%d",fun(2,2+3,2/3));}3.#include<stdio.h>main(){intx=-2,y=0;do{x=x*x;}while(x&y);printf("%x,%x\n",x,x&&y);}4.#include<stdio.h>main(){ inta[5]={1,2,3,5,0},max=a[4],i,j=4; for(i=3;i>=0;i--) { if(max<a[i])max=a[i],j=i; } a[j]=a[4];a[4]=max; for(i=0;i<5;i++) printf("%d",a[i]);}5.main(){chars[80]="xy",t[80]="12"; strcat(t,s+1); printf("%s,%d",t,strlen(s));}6.#include<stdio.h>main(){ structex { unionun { inta; intb; }in; intx; }e; e.x=10;e.in.a=3; e.x=e.in.a+e.in.b; printf("%d%d",e.x,e.in.a);}7.#include<stdio.h>main(){ inta[2][2]={1,2}; int(*p)[2]=a; printf("%d,%d",(*p)[1],(*p+1)[1]);}8.#include<stdio.h>main(){ FILE*fp; fp=fopen("test1.txt","w"); fputs("yes",fp); fclose(fp);}test1.txt中原內容為“123”四、根據功能描述改正程序中的錯誤。不得增行或刪行,不得更改程序結構。(本題10分)1.下面程序功能為計算某年第一天到某特定日的天數。(本題4分)#include<stdio.h>intf(intyear,intmonth,intday){ intans=0; intm[]={31,30,31,30,31,30,31,31,30,31,30,31}; if((year%4==0&&year%100!=0)||year%400!=0) m[1]=29; for(inti=0;i<month-1;i++) ans+=m[i]; ans+=day; returnans;}main(){ printf("%d\n",f(2011,7,6)); }2.按照公式計算樣本方差。(本小題6分)#include<stdio.h>#include<math.h>voidmain(){ doubleavg=0,s; doublea[10]={2,4,1.2,8,5.4,2,4,1,5.3,3.2}; intn=10,i; for(i=0;i<n;i++) avg+=a[i]; avg/=n; for(i=0;i<n;i++) s+=pow((a[i]-avg),2); s=(n-1); printf("樣本方差=%d\n",s);}五、請用標準程序流程圖描述下列問題的算法(本題10分)設某班共有10名學生,為了評定某門課程的獎學金,按照規定超過全班平均成績10%者發給一等獎,超過全班平均成績5%者發給二等獎。程序輸出學生學號、成績和獎學金等級。請繪制流程圖。六、編程題(本題20分)(考查課做前兩道,考試課做后兩道)某個公司采用公用電話傳遞數據,數據是四位的整數,在傳遞過程中是加密的,加密規則如下:每位數字都加上5,然后用和除以10的余數代替該數字,再將第一位和第四位交換,第二位和第三位交換。(本小題10分)2.假定輸入的字符串中只包含字母和*號。請編寫函數fun,它的功能是:刪除字符串中所有的*號。在編寫函數時,不得使用C語言提供的字符串函數。(本小題10分)例如:若字符串中的內容為****A*BC*DEF*G*******刪除后,字符串內容應該是:ABCDEFGvoidfun(char*a){ }main(){ints[81];gets(s);fun(s);puts(s);} 3.60名學生的成績已在主函數中放入一個帶頭節點的鏈表結構中,h指向鏈表的頭節點。請編寫函數fun(),它的功能是:找出學生的最低分,由函數值返回。(本小題10分)#include<stdio.h>#include<stdlib.h>#defineN60structslist{doubles;structslist*next;};typedefstructslistSTREC;doublefun(STREC*h){}STREC*creat(double*s){STREC*h,*p,*q;inti=0;h=p=(STREC*)malloc(sizeof(STREC));p->s=0;while(i<N){q=(STREC*)malloc(sizeof(STREC));p->s=s[i];i++;p->next=q;p=q;}p->next=NULL;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論