常熟理工學(xué)院-C語(yǔ)言-考試樣卷(共5頁(yè))_第1頁(yè)
常熟理工學(xué)院-C語(yǔ)言-考試樣卷(共5頁(yè))_第2頁(yè)
常熟理工學(xué)院-C語(yǔ)言-考試樣卷(共5頁(yè))_第3頁(yè)
常熟理工學(xué)院-C語(yǔ)言-考試樣卷(共5頁(yè))_第4頁(yè)
常熟理工學(xué)院-C語(yǔ)言-考試樣卷(共5頁(yè))_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言)考試卷(本科樣卷)(理論部分)考試時(shí)間120分鐘,答案請(qǐng)寫在答題卡上 專心-專注-專業(yè)一、選擇題 (每小題2分,共40分)1以下語(yǔ)句中不包含關(guān)鍵字的是()。 Ax=sqrt(2);Bwhile(x!=0)x-;Cif(x<0)x=-x;Dreturn x;2執(zhí)行以下程序時(shí), #include<stdio.h> main() int a; float b; scanf("%3d%f",&a,&b);printf("%dt%f",ab); 若要求變量a和b分別從鍵盤獲得輸入值4

2、5和678.0,則以下四種輸入數(shù)據(jù)中(凵代表”空格”鍵,代表”回車”鍵),不能達(dá)到該要求的輸入數(shù)據(jù)是()。A45凵678B45678C45,678D3已知有聲明int x=2:,以下表達(dá)式中值不等于8的是()。Ax+=2,x*2Bx+=x*=XC(x+7)/2*(x+1)%2+1)Dx*7.2/x+14已知有聲明”int a=3, b=4, c;”,則執(zhí)行語(yǔ)句”c=1/2*(a+b);”后,c的值是()。A0B3C3.5D45已知字母A的ASCII碼是65,字母a的ASCII碼是97,變量c中存儲(chǔ)了一個(gè)大寫字母的編碼。若要求將c中大寫字母編碼轉(zhuǎn)換成對(duì)應(yīng)小寫字母編碼,則以下表達(dá)式中不能實(shí)現(xiàn)該功能

3、的是()。Ac=tolower(c)Bc=c+32Cc=c-A+aDc= (c +A)%26-a6已有聲明”char *s1="China", s210, *s3="Nanjing" *s4;”,以下字符串賦值語(yǔ)句在執(zhí)行時(shí)可能出現(xiàn)錯(cuò)誤的是()。Astrcpy(s3, s1);Bstrcpy(s4, s1);Cstrcpy(s2, s1);Dstrcpy(s2, s3);7執(zhí)行以下程序后的結(jié)果是()。#include <stdio.h>void main() int x=3;Doprintf("%dt", x=x-3);wh

4、ile(!x);A輸出一個(gè)數(shù):0B輸出一個(gè)數(shù):3C輸出兩個(gè)數(shù):0和-3D無(wú)限循環(huán),反復(fù)輸出數(shù)8設(shè)有聲明”int p10=1, 2, i=0;”,以下語(yǔ)句中與”pi=pi+1, i+;”等價(jià)的是()。Api=pi+1;Bp+i=pi;Cp+i=pi+1;Di+, pi-1=pi;9已知有聲明”int m=5,4,3,2,1,i=0;”,下列對(duì)m數(shù)組元素的引用中,錯(cuò)誤的是()。 Am+iBm5Cm2*2=0Dmm410若有函數(shù)fun的定義為 void fun()static int a=1; 則下列敘述中不正確的是()。A在每次調(diào)用fun函數(shù)時(shí),變量a的值是上次調(diào)用結(jié)束時(shí)a的值B在fun函數(shù)之外,

5、可以用變量名a直接引用a的值C在其他函數(shù)中,可以出現(xiàn)聲明double a=2.5;Dfun函數(shù)的形式參數(shù)不能取名為a11若函數(shù)調(diào)用時(shí)的實(shí)參為變量,則以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是()。A實(shí)參和其對(duì)應(yīng)的形參占用同一存儲(chǔ)單元B形參不占用存儲(chǔ)單元C同名的實(shí)參和形參占用同一存儲(chǔ)單元D形參和實(shí)參占用不同的存儲(chǔ)單元12已有聲明”int a5;”,以下表達(dá)式中不能正確取得a1指針的是()。A&a1B+aC&a0+1Da+l13若有如下聲明和語(yǔ)句: int t33, *pt3, k; for(k=0; k<3;k+) ptk=&tk0; 則表達(dá)式*(*(pt+1)+2)所

6、引用的是()。At20B&t20Ct12D&t1214若有如下的類型定義和變量聲明,則在給出的選項(xiàng)中值不為7的表達(dá)式是()。struct ss int a; struct ss *b;x3=5, &x1, 7, &x2, 9, 0, *ptr=&x0;Aptr->aB(+ptr)->aCx1ADx0.b->a15下列敘述中正確的是()。 Amain函數(shù)必須出現(xiàn)在其他函數(shù)之前 Bmain函數(shù)中至少必須有一條語(yǔ)句 CC程序總是從main函數(shù)的第一條語(yǔ)句開始執(zhí)行DC程序總是在執(zhí)行完main函數(shù)的最后一條語(yǔ)句后結(jié)束16已有定義“int a23=

7、0, *p=a0;”,下面表達(dá)式中有語(yǔ)法錯(cuò)誤的是 。Aa0=1 Bp0=1 C*p=1 Da00=117若有如下聲明和語(yǔ)句:int a33, *p3, k;for(k=0; k<3;k+) pk=&ak0;則表達(dá)式*(*(p+1)+2)所引用的是 。Aa20 B&a20 Ca12 D&a1218設(shè)有聲明語(yǔ)句“int b33=1,2,3,4,5,6,7,8,9;”,下面語(yǔ)句中不能輸出數(shù)組元素b12的值6的是 _。Aprintf("%d ",*(*(b+1)+2) Bprintf("%d ",*(&b20-1);Cpri

8、ntf("%d ",*(b1+2); Dprintf("%d ",*(b+1)2);19下面函數(shù)中,可以把整型數(shù)據(jù)以二進(jìn)制形式寫入文件中的函數(shù)是_。Afprintf() Bfwrite()Cfread()Dfputc()20在缺省情況下,標(biāo)準(zhǔn)C的編譯系統(tǒng)中預(yù)定義的標(biāo)準(zhǔn)輸出流stdout直接連接的設(shè)備是 。A軟盤 B硬盤 C鍵盤 D顯示器二、填空題 (每空2分,共20分)1數(shù)學(xué)式所對(duì)應(yīng)的C語(yǔ)言表達(dá)式為(1)。2在C語(yǔ)言中大部分執(zhí)行語(yǔ)句都含關(guān)鍵字。例如,for語(yǔ)句含關(guān)鍵字for。除這些語(yǔ)句外不含關(guān)鍵字的非空操作語(yǔ)句是(2) 。3在以下程序的main函數(shù)中,語(yǔ)

9、句”fun(x, 10);”內(nèi)的實(shí)參x表示數(shù)組x的(3) 。 void fun(int a10, int n) int i; for(i=0; i<n; i+)ai+; main( ) int x10=0;fun(x, l0); 4已知有函數(shù)定義“int fun()return (3, 4);”,則調(diào)用fun后的函數(shù)返回值是(4)。5執(zhí)行程序段 “int x=0x6c; printf(“x=xn”, x);”后的輸出結(jié)果為(5) 。6已知有聲明”char ch; int a;” 執(zhí)行語(yǔ)句”scanf(“%c%d”, &ch, &a);”時(shí)如果從鍵盤輸入的數(shù)據(jù)是”123”,

10、則變量a得到的值是(6) 。7在C語(yǔ)言源程序中,不帶任何修飾符的浮點(diǎn)數(shù)直接量(例如:3.14)都是按(7)類型數(shù)據(jù)存儲(chǔ)的。8若有聲明“char sl10= “ABCDE”, s210= “A0”;”,則語(yǔ)句 “printf(“%d”, strlen(strcpy(sl, s2);”的輸出結(jié)果是(8) 。9設(shè)函數(shù)a的定義如下: void a() int x=12,y=345;FILE *fp=fopen(“my.dat”,”w”); fprintf(fp, “%d %d”,x,y); fclose(fp); 已知main函數(shù)中有聲明int x,y;FILE *fp=fopen(“my.dat”,

11、”r”);,若需要從文件mydat中正確地讀出由函數(shù)a寫入的兩個(gè)數(shù)據(jù)并分別保存到變量x和y中,則在main函數(shù)中使用的讀數(shù)據(jù)語(yǔ)句應(yīng)當(dāng)是(9)(要求寫出語(yǔ)句的完整格式)。10在一個(gè)C語(yǔ)言源程序中,必不可少的是(10) 。三、閱讀程序題 (每空2分,共20分)1以下程序運(yùn)行時(shí)輸出結(jié)果是 (1) 。 #include<stdio.h>main() char *p=“student”;if(strcmp(p,“student”) printf(“yes”); else printf(“no”);2以下程序運(yùn)行后的輸出結(jié)果為 (2) 。 #include <stdio.h> in

12、t b; int fun(int a) static int c=3; return (+a)+(+b)+(+c);void main ( ) int i, a=2; for(i=0;i<2;i+) printf(“%5d”, fun(a);3以下程序輸出結(jié)果為 (3) 。 void f(int a, int *b) a+; b+; (*b)+; main() int i, x2 = 4,4; f(x0, &x0); printf(“%d,%d”, x0, x1); 4以下程序運(yùn)行時(shí),輸出結(jié)果是 (4) 。 #include <stdio.h> fun(int x)

13、if(x/2>0) fun(x/2); printf(“%d”, x%2); main( ) fun(20); putchar(n);5以下程序運(yùn)行時(shí)輸出到屏幕的結(jié)果是 (5) 。 #include <stdio.h> #define MAX(A, B) A>B?2*A:2*B void main() int a=1, b=2, c=3, d=4, t; t=MAX(a+b, c+d); printf(“%dn”, t); 6以下程序運(yùn)行時(shí)輸出到屏幕的結(jié)果中第一行是 (6) ,第二行為 (7) 。#include <stdio.h> #include <

14、;ctype.h> void compute(char *s) int t, r; char op; for(r=0; isdigit(*s); s+) /* isdigit(*s)判斷s指向的字符是否為數(shù)字字符*/ r=r*10+*s-0; while(*s) op=*s+; for(t=0; isdigit(*s); s+) t=t*10+*s-'0' switch(op) case '+':r=r+t; break; case '-': r=r-t; break; case '*':r=r*t; break; case

15、 '/':if(t) r=r/t; elseputs(“devide error”); return; printf(“%dn”, r); void main( ) compute(“12+6-19+2”); compute(“12/6*19/2”); 7以下程序運(yùn)行時(shí)輸出結(jié)果的第一行是 (8) ,第二行是 (9) ,笫三行是 (10) 。 #include <stdio.h> typedef struct s int index; int value; M;main( )static int i, j, k, c44;M a10=0, 1, 3, 2, 5, 3,

16、 6, 4, 9, 5, 15, 6, -1,0, *p=a, b10=1, 1, 3, 2, 4, 3, 6, 4, 10, 5, 13, 6, -1, 0, *q=b;while (p->index!=-1) i=p->index/4; j=P->index%4; cij=p->value; p+;while(q->index !=-1) i=q->index/4; j=q->index%4; cij+=q->value; q+; for(i=0;i<4;i+) for(j=0;j<4;j+) printf(“%d”, cij);

17、 printf(“n”);四、完善程序題(每空1分,共5分)1以下程序的功能是對(duì)a數(shù)組a0an-1 中存儲(chǔ)的n個(gè)整數(shù)從小到大排序。排序算法是:第一趟通過(guò)比較將n個(gè)整數(shù)中的最小值放在a0中,最大值放在an-1 中;第二趟通過(guò)比較將n個(gè)整數(shù)中的次小值放在a1中,次大值放在an-2 中;,以此類推,直到待排序序列為遞增序列。試完善程序以達(dá)到要求的功能。#include <stdio.h>#define N 7void sort(int a, int n) int i, j, min, max, t; for(i=0; i<(1); i+) (2); for(j=i+1; j<

18、n-i; j+) if(aj<amin)min=j; else if(aj>amax)max=j; if(min!=i) t=amin; amin=ai; ai=t; if(max!=n-i-1) if(max=i) t=amin; amin=an-i-1; an-i-1=t; else t=amax; amax=an-i-1; an-i-1=t; void main() int aN=8, 4, 9, 3, 2, 1, i; sort(a, N);printf(“sorted:n”);for(i=0; i<N; i+) printf(“%dt”,ai);printf(“n”

19、);2程序中函數(shù)double mycos(double x)的功能是:根據(jù)下列公式計(jì)算cos(x)的近似值。 精度要求:當(dāng)通項(xiàng)的絕對(duì)值小于等于10-6時(shí)為止。 #include <stdio.h> #include <(3)>double mycos(double x) int n=1;double sum=0, term=1.0;while ((4)>=le-6)sum+=term; term*=(5); n=n+2; return sum;main( ) double x;scanf(“%1f”, &x);printf(“fx(%f)=%f,%fn”,

20、 x, mycos(x), cos(x);五、改錯(cuò)題(共9分,每錯(cuò)3分, 指出錯(cuò)誤1分,改對(duì)2分)題目:函數(shù)change從a數(shù)組存儲(chǔ)的字符串中取出所有十六進(jìn)制數(shù)字字符依次存入字符數(shù)組b中,然后再將b數(shù)組中的數(shù)字字符串轉(zhuǎn)換成一個(gè)整數(shù)并返回。提示:庫(kù)函數(shù)isxdigit(ch)的功能是檢查ch是否是十六進(jìn)制數(shù)字字符,若是則返回1,否則返回0。(模擬題有6個(gè)錯(cuò))注意:不能增加、刪除語(yǔ)句,但可以調(diào)換語(yǔ)句的位置。(測(cè)試數(shù)據(jù)與運(yùn)行結(jié)果)測(cè)試數(shù)據(jù):"xyz3F4tqk"運(yùn)行結(jié)果:輸出1012(含有錯(cuò)誤的源程序)#include<stdio.h>#include<coni

21、o.h>#include<ctype.h>(1)long change(char a)(2)(3)int i, j = 0;long int k = 0;(4)char b10 = 0;(5)for (i = 0;ai! = '0'i+)(6)if (isxdigit(ai)(7)bi+ = ai;(8)bj = '0'(9)i = 0;(10)do(11)(12)if (isdigit(bi)(13)k = k * 16 + bi - '0'i+; (14)else(15)(16)bi = isupper(bi) ? bi:b

22、i - 'a' + 'A'(17)i+;(18)k = k * 16 + bi - 'A'(19)(20)(21)while (bi != '0');(22)return k;(23)(24)void main()(25)(26)char c80 = "xyz3F4tqk"(27)long m;(28)m = change(c);(29)printf("%ld", m);(30)六、編程題(共6分)求下面數(shù)列的和,計(jì)算到第n項(xiàng)的值小于10-4為止。式中,(本程序運(yùn)行結(jié)果是:y=2.)。要求計(jì)算fn用函數(shù)過(guò)程實(shí)現(xiàn)。答題卡題號(hào)一二三四五六七總得分閱卷人一、選擇題(每小題2分,共30分)12345678910ACDADBCDBB11121314151617181920DBCACAC

溫馨提示

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

評(píng)論

0/150

提交評(píng)論