03303043高級語言程序設計(上)期末考試試卷A(上機考試)_第1頁
03303043高級語言程序設計(上)期末考試試卷A(上機考試)_第2頁
03303043高級語言程序設計(上)期末考試試卷A(上機考試)_第3頁
03303043高級語言程序設計(上)期末考試試卷A(上機考試)_第4頁
03303043高級語言程序設計(上)期末考試試卷A(上機考試)_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

PAGE7/7上海電機學院2010–2011學年第1學期(03303043)《高級語言程序設計》(上)期末考試試卷A卷開課學院:電子信息學院出卷教師:吉順如考試形式:閉卷考試時間90分鐘上機考考生姓名:趙君陽學號:19班級:BQ0902題序一二三四五總分得分評卷人一、選擇題(共20分,每小題1分)1.在一個C語言程序中下列說明正確的是(B)A)main()函數必須出現在所有函數之前B)main()函數可以在任何地方出現C)main()函數必須出現在所有函數之后D)main()函數必須出現在固定位置2.二進制語言是屬于(A)A)面向機器語言B)面向問題語言C)面向過程語言D)面向匯編語言3.下列符號串中,屬于C語言合法標識符的是(A)A)floatB)sumoneC)2maxD)max24.以下選項中合法的C語言字符常量是(C)A)‘\092'B)"x"C)‘\xAB’D)‘xy’5.若有以下程序段,則變量c的二進制值是(A)inta=6,b=3,c;c=a^b<<2;A)00011011B)00001010C)00011000D)6.要輸入實數,用格式字符(C)。A)%dB)%cC)%fD)%s7.putchar()函數可以向終端輸出一個(D)A)整型變量表達式B)實型變量值C)字符串D)字符或字符型變量8.若x是int類型變量,y是float類型變量,則為了將數據55和55.5分別賦給x和y,則執行語句:scanf(“x=%d,y=%f”,&x,&y,);時,正確的鍵盤輸入是(A)。A)5555.5↙B)x=55,y=55.5↙C)55↙55.5↙D)x=55↙y=55.5↙9.設x,y和z是int型變量,且x=1,y=2,z=3,則下面表達式中值為0的是(D)A)x&&yB)x<=yC)x||y+z&&y-zD)!((x<y)&&!z||1)10.為了避免嵌套的if-else語句的二義性,c語言規定else總是與(C)組成配對關系。A)縮排位置相同的ifB)在其之前末配對的ifC)在其之前未配對的最近的ifD)同一行上的if11.以下敘述中正確的是(C)A)用C程序實現的算法必須要有輸入和輸出操作B)用C程序實現的算法可以沒有輸出但必須要有輸入C)用C程序實現的算法可以沒有輸入但必須要有輸出D)用C程序實現的算法可以既沒有輸入也沒有輸出12.要把高級語言編寫的源程序轉換為目標程序,需要使用(D)A)編輯程序 B)驅動程序 C)診斷程序 D)編譯程序13.程序段:intnum=0;while(num<=2)printf(“%d,”,num++);的循環執行的次數(C)A)1次B)2次C)3次D)4次14.C語言中while和do-while循環的主要區別是(A)A)do-while的循環體至少無條件執行一次B)while的循環控制條件比do-while循環控制條件嚴格C)do-while允許從外部轉到循環體內D)do-while的循環體不能是復合語句15.以下不正確的描述是(B)A)break語句不能用于循環語句和switch語句外的任何其它語句B)在switch語句中使用break語句或continue語句的作用相同C)在循環語句中使用continue語句結束本次循環,但不會終止整個循環D)在循環語句中使用break語句是會跳出循環體,提前結束循環16.執行下列語句序列后,不可能出現的運行結果是(D)intn;scanf(“%d”,&n);switch(n){case1:case2:putchar('X');case3:case4:putchar('Y');break;default:putchar('Z');}A)顯示:XB)顯示:YC)顯示:ZD)顯示:XY16.若有以下的數組定義:chara[]="abcd";charb[]={'a','b','c','d','e'};則正確的描述是(B)A)a數組和b數組長度相同B)a數組長度大于b數組長度C)a數組長度小于b數組長度D)兩個數組中存放相同的內容17.若有定義:charstr1[30],str2[30];則輸出較大字符串的正確語句是:(C)A)if(strcmp(strl,str2))printf("%s",strl);B)if(strl>str2)printf("%s",strl);C)if(strcmp(strl,str2)>0)printf("%s",strl);D)if(strcmp(strl)>strcmp(str2))printf("%s",strl);18.假設有定義inti,t[][3]={1,2,3,4,5,6,7,8,9};執行語句for(i=0;i<3;i++)printf("%d",t[2-i][i]);后的輸出結果是(C)A)357B)753C19.若變量已正確定義,且x的值是1,y的值是2,z的值是4,計算表達式(x=y==z)后各變量的值為(C)A)x=0,y=2,z=4B)x=1,y=4,z=4C)x=4,y=20.設有數組定義:chararray[]=”China”;則數組所占的空間是(B)A)4個字節

B)5個字節

C)6個字節

D)7個字節二、填空題(共20分,每空格1分)1.C程序是由函數構成的。其中有并且只能有1個主函數。一個函數由兩部分組成:函數的首部和函數體。2.若x和n均是int型變量,且x的初值為26,n的初值為7,則計算表達式x%=(n%=4)后,變量x的值為23.表達式2.5+10/4=4.5。若定義inta=4,b;則表達式(b=6*5,a*4),a+16的值是__30,16,32____4.十進制數89,轉換為二進制數為1011001,轉換為十六進制數為59 5.假設有定義a=b=c=d=m=n=4。則執行表達式(m=a>b)&&(n=c>d)后,n的值為6.當a=3,b=2,c=1時,表達式x=a>b>=c的值是37.若有定義inta=15,b=7,c;則執行c=(a%b<1)||(a/b>1);后c的值為48.能判斷x是數字字符的C語言表達式是charc[]9.若有定義intw=5,x=2,y=6,z=4;則條件表達式w<x?w:(y<z?y:z)的值是410.將數學式轉換成C語言表達式cos(sqrt(x*x))/(a+b)。11.若有定義:doublea[3][5];則a數組中列下標的上限為312.有如下語句:chara[]={”Howareyou!”};sizeof(a)=,strlen(a))=1213.二維數組A[4][5]={{2,2,4},{4,6,5,6},{0}};中元素A[1][1]的值是14.若有定義:charp[20]={'a','b','c','d'},r[]="xyz";則執行語句strcat(p,r);printf("%s\n",p);后的輸出結果是15.在C語言中,標識符只能由字母、數字和下劃線字符組成,并且第一個字符不能是___數字_____字符。16.定義intb=7;floata=5.2,c=6.9;則表達式b*(int)(a+c)/2的值為__42_______三、程序改錯題(共18分,每小題6分)1、下列程序從鍵盤輸入一個數n,求1~n之和并輸出。請糾正程序中存在錯誤,使程序實現其功能。如輸入5↙輸出:Thesumfrom1to5is15#include<stdio.h>main(){inti=1,n;floatsum;scanf(“%d”,n);for(i<n;i++);sum+=i;printf(“Thesumfrom1to%dis%d\n”,n,sum);}2、下列程序從鍵盤輸入任意一行字符串(設字符數不大于20),提取該字符串中的數字字符并組成一個整數,輸出該整數及其兩倍的值。請糾正程序中存在錯誤,使程序實現其功能。如輸入:abc12e3fgh4i則輸出:12342468#include<stdio.h>voidmain(){inti,n=0;charstr[80];gets(str[80]);for(i=0;str[i]!='\n';i++)if(str[i]>=0&&str[i]<=9)n=n*10+str[i]; printf("%d%d\n",n,2*n);}3、下列程序的功能為:已知圓錐半徑r和高h,計算圓錐體積v。請糾正程序中存在錯誤,使程序實現其功能。#include<stdio.h>main();{floatr=10,h=5;v=1/3.0*3.14159*r*r*h;printf("v=%f\n",v);}四、程序填空題(共18分,每空格2分)1、下列程序的功能為:輸出100以內能被4整除且個位數為8的所有整數;請填寫適當的符號或語句,使程序實現其功能。程序運行結果為:828486888#include<stdio.h>main(){inti,j;for(i=0;i<10①;i++){j=i*10+8;if(i%4!=0②)continue③;printf("%d",j);}}2、以下程序的功能是:采用二分法在給定的有序數組中查找用戶輸入的值,并顯示查找結果。請填寫適當的符號或語句,使程序實現其功能。如輸入5輸出為:找到位置為6如輸入10輸出為:10未找到源程序:#include"stdio.h"#defineN10main(){inta[]={0,1,2,3,4,5,6,7,8,9},k;intlow=0,high=N-1,mid,find=0;printf("請輸入欲查找的值:\n");scanf("%d",&k);while(low<=high){mid=④;if(a[mid]==k){printf("找到位置為:%d\n",mid+1);find=1;}if(a[mid]<k)⑤;else⑥;}if(!find)printf(“%d未找到\n”,k);}3.以下程序輸入n和n個大于1的正整數,輸出其中素數。如輸入:51993113715則輸出:191137例示說明:先輸入n為5,再輸入5個正整數,輸出5個整數中的素數#include<stdio.h>voidmain(){ intn,a,i,j,ct; scanf("%d",&n); for(i=0;⑦;i++) { ⑧; scanf("%d",&a); for(j=2;j<a;j++) if(⑨) ct++; if(ct==0) printf("%d",a); } printf("\n");}五、編程題(共24分,每小題6分)2+x>71.從鍵盤輸入實數x,按照下列公式計算并輸出y值:y=5+3x-7≤x≤73x2x<-7#include<stdio.

溫馨提示

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

評論

0/150

提交評論