




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1、 指針運(yùn)算,字符串是指針2、 是轉(zhuǎn)義符,n是一個(gè)字符計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)試卷一、 從下列四個(gè)供選擇的答案中選出最正確的一個(gè)答案(每題2分,共20分)1、 語(yǔ)句printf(“%s%d”,”Hello World!”+2,strlen(“next”); 將輸出:A) llo World!4 B) Hello World!2 C) llo World!5 D) 上述語(yǔ)句語(yǔ)法有錯(cuò)運(yùn)算符的優(yōu)先級(jí):算術(shù)運(yùn)算符(+)優(yōu)先于邏輯運(yùn)算符(&&), 14&&15=12、 執(zhí)行下列程序段后,a值為:int a,b;a=15; b=-1;同時(shí)整除要用&&,整除要用!
2、(i%2)a=a+b&&a; A) 15 B) 0 C) 1 D) 163、 判斷整型變量i,j可同時(shí)被2整除的表達(dá)式(i,j同時(shí)被2整除返回1,否則返回0)是:A) !(i%2)|!(j%2) B) !(i%2)&&!(j%2) C) (i%2)&&(j%2) D) (i%2)|(j%2)4、 C語(yǔ)言while語(yǔ)句中,用于判斷循環(huán)結(jié)束的表達(dá)式是:A)關(guān)系表達(dá)式 B)邏輯表達(dá)式 C)算術(shù)表達(dá)式 D)任意表達(dá)式 1 2 3 4 5s>i F F F F Ts 0 0 1 3 6i 0 1 2 3 4 5、 下列for循環(huán),將執(zhí)行for(i=0
3、,s=0; i<10; i+) if(s>i) break; else s += i;A)10次 B) 1次 C) 3次 D) 以上均不是6、 下列程序段執(zhí)行后s值為:i 1 2 3 4 5 6 7 8 9 !(i%2) F T F T F T F T Fs 1 1 4 4 9 9 16 16 25int i=1,s=0;do if(!(i%2) continue; s += i; while(+i<10);A)1 B) 45 C) 25 D) 以上均不是7、 對(duì)于int a;則表達(dá)式1<=a<=5值是:<=自左而右運(yùn)算(1<=a)<=5 0 |
4、 1 <=5 = 1A) 0 B) 1 C) 不定 D) 表達(dá)式語(yǔ)法有錯(cuò)8、 執(zhí)行下列語(yǔ)句后,a的值為:M(a,b)>6a=b>6a=(b>6) 1int a=12, b=7;#define M(x,y) x=y;M(a,b)>6;A) 0 B) 1 C) 12 D) 7*p=s,*q=s+1相差一個(gè)結(jié)構(gòu)(2個(gè)整數(shù))(int *)q (int *)p相差2個(gè)整數(shù)9、 對(duì)于以下結(jié)構(gòu)定義:struct int x; int y; s10,*p=s,*q=s+1; 則表達(dá)式(int *)q (int *)p的值等于: A) 1 B) 2 C) 4 D)表達(dá)式語(yǔ)法有錯(cuò)10
5、、 將p定義為數(shù)組指針,數(shù)組元素類型為字符指針,數(shù)組大小為10,可寫成:A)char *p10; B)char *(*p)10; C) char (*p)10; D)以上均不是11、 對(duì)于以下程序段,運(yùn)行后i值為:char (*p)10;為指針數(shù)組char *(*p)10;為數(shù)組指針int i=0,a=1;switch(a) case 1: i += 1; /* a=1 與這個(gè)case匹配運(yùn)算后再往下流*/ case 2: i +=2; break; /* 執(zhí)行后i=3 且退出 */ case 3: i+=3;A) 1 B) 3 C) 6 D) 上述程序有語(yǔ)法錯(cuò)誤12、 對(duì)于以下遞歸函數(shù)f,調(diào)
6、用f(4),其返回值為:f(4)àf(4-2)+4à(f(2-2)+2)+4àf(0)+2+4=6int f(int n)( if(n) return f(n-2)+n; else return n;char *s;只定義了一個(gè)指向字符的指針,而沒(méi)有指向內(nèi)存空間A) 6 B) 4 C) 0 D) 無(wú)限遞歸13、 對(duì)于下列程序段,當(dāng)輸入為123,執(zhí)行后: char *s; scanf(“%s”,s); A)s值為”123” B)編譯時(shí)出錯(cuò) C)編譯不出錯(cuò),但程序有問(wèn)題 D)以上均不是14、 對(duì)于如下說(shuō)明,則有意義的正確表達(dá)式是: int *p3,a3; A) p=a
7、 B) p0=a0 C) p0=a D) p0*=215、 對(duì)于struct node char s10; int i; p4;下列哪個(gè)賦值是正確的: A) p->i=2 B) p0.s=”abc” C) p0->i=2 D) p->s=a二、 填空題(每題2分,共40分)1、 用下列for循環(huán)將大寫字母逆序輸出(即從Z到A),其語(yǔ)句應(yīng)為:for(i=0;i<26;i+) (1) putchar(Z-i);2、 執(zhí)行完下列語(yǔ)句段后,i,j值分別為 (2)i=15,j=10 int i,j;j=i=5;i+=j+=i; /* i+=(j+=i); i+= j, j=10
8、; i=15 */3、 對(duì)于如下定義,則通過(guò)指針p來(lái)存取aij的表達(dá)式為: (3)*(p+i*20+j) int a1020,*p=&a00;4、執(zhí)行完下列語(yǔ)句段后,i值為: (4) 1 int i;f(1): x=0,k=1,return 0f(f(1)=f(0): x=1,k=0, return 1 int f(int x) static int k=0; int t; t=k; k=x; x=t; return x; i=f(f(1);5、在C語(yǔ)言程序中,若對(duì)函數(shù)類型未加顯式說(shuō)明,函數(shù)的隱含類型為: (5) int 6、執(zhí)行下列語(yǔ)句段后,將輸出: (6)ello world! s
9、tatic char *s=”hello world!”; printf(“%s”,+s); (c<a|c>z)&&(c<A|C>Z)7、對(duì)于char c;判斷c不是大或小寫字母的表達(dá)式(不是返回1,否則返回0)為: (7) 8、將A定義為整型函數(shù)指針類型名,可寫為: (8)typedef int (*A)(); 9、實(shí)現(xiàn)字符串拷貝的函數(shù)strcpy為: void strcpy(char *s,char *t) while( (9)* s+ = *t+ ); 10、下面的C代碼段用于計(jì)算s=x-x3/3+x5/5-x7/7+x9/9-的近似值(xn表示x
10、的n次方) i=1; t=x; s=t; while(fabs(t)>0.00001) /* fabs(t): t的絕對(duì)值 */ i+; t=-t * (10) x*x*(2*i-3)/(2*i-1) ; s+=t; 11、下面的程序把輸入信息直接復(fù)制到輸出,在復(fù)制過(guò)程中,用t符號(hào)代替制表符,用b符號(hào)代替退格符,用符號(hào)代替右斜杠,這樣這些符號(hào)都可以成為可見(jiàn)符號(hào)。#include <stdio.h>main() int c; while(c=getchar()!=EOF) if(c=t) (11) printf(“t”) ; /* 二個(gè)”代表一個(gè)” */ else if(c=b
11、) (12) printf(“b”) ; else if(c=) (13) printf(“”) ; else putchar(c); 12、下面是統(tǒng)計(jì)鏈表first中元素個(gè)數(shù)的C語(yǔ)言程序段struct link struct link *next;datafirstdatadata char data;0struct link *first;Pstruct link *p;int c;c=0;p=first; while( (14) p ) p= (15) p->next ; (16) c+ ;13、int i=0,s=0,a10; /* 將a數(shù)組中非負(fù)數(shù)加到s中 */while(i&
12、lt;10)&&(ai>=0) s+=ai+;等價(jià)于int s=0,a10,*p=a;for( (17) ;p<a+10;s+=*p+ ) if(*p<0) break;14、下面的程序Remove_blank刪除字符串中所有空格 Remove_blank(char *s) int i,tmp; char tmpstr81; for(i=0,tmp=0;si!= (18) 0 ; i+) if(si!= ) /* 只對(duì)非空格處理 */ tmpstr (19) tmp+ = si; tmpstrtmp= (20) 0 ; /* 加上字符串結(jié)束標(biāo)志 */ strc
13、py(s,tmpstr); 三、 理解程序,并回答相應(yīng)問(wèn)題(共20分)1、程序 #include <stdio.h> int f(int x,int a,int n) /* 在an中二分法檢索x */ int low,high,mid; low=0; high=n-1; while(low<=high) mid=(low+high)/2; if(x>amid) high=mid-1; else if(x<amid) low=mid+1; else return(mid); /* 返回x的下標(biāo)值 */ return(-1); main() /* 主程序 */ sta
14、tic int a=4,0,2,3,1; /* 初始數(shù)據(jù)5個(gè) */ int i,t,j; for(i=1;i<5;i+) /* 從大到小排序 */ t=ai; j=i-1; while(j>=0&&t>aj) aj+1=aj; j-; aj+1=t; /* 排序后a=4,3,2,1,0 */ printf(“%dn”,f(3,a,5); /* 調(diào)用f(3,a,5),即求3的位置,是1 */ 問(wèn)題1:程序執(zhí)行后的輸出結(jié)果是 1 。問(wèn)題2:若將程序的輸出語(yǔ)句改為:printf(“%dn”,f(5,a,5); 程序執(zhí)行后的輸出結(jié)果是 -1 。 /* 調(diào)用f(5,a,
15、5),即求5的位置,找不到為-1 */2、程序 #include <stdio.h> int cal(int a,int b,char op) /* 能計(jì)算*或+的計(jì)算器 */ if(op=*) return(a*b); else return(a+b); void main() int x,y,z,result; char op1,op2; scanf(“%d%c%d%c%d”,&x,&op1,&y,&op2,&z); /* 輸入2+3*5 */ if(op1=+&&op2=*) /* 先+后* 表達(dá)式 */ result=
16、cal(x,cal(y,z,op2),op1); /*問(wèn)題1當(dāng)輸入2+3*5時(shí)先算3*5,值為17 */ else /* 先*后+ 表達(dá)式 */ result=cal(cal(x,y,op1),z,op2); /*問(wèn)題2當(dāng)輸入2+3*5時(shí)先算2+3,值為25 */ printf(“%dn”,result); 問(wèn)題1:當(dāng)輸入為2+3*5時(shí),上述程序?qū)⑤敵?17 。問(wèn)題2:把op1=+&&op2=*中的op1,op2對(duì)調(diào)后,當(dāng)輸入為2+3*5時(shí),上 述程序?qū)⑤敵?25 。3、程序 f(int n) int i,j; if(n%2|n=2) /* n是奇數(shù)或是2 顯示錯(cuò)誤*/ pri
17、ntf(“Error: %d is an odd number or equals to 2!n”,n); return; for(i=n-2;i>=n/2;i-) /* 對(duì)>2的偶數(shù) */ for(j=2;i%j;j+); if(j!=i) continue; for(j=2;(n-i)%j;j+); if(j!=n-i) continue; printf(“%3d=%3d+%3d “,n,i,n-i); int test_data=6,8,10;main() int i; for(i=0;i<3;i+) f(test_datai); 問(wèn)題1:程序輸出的結(jié)果為 6=3+3
18、8=5+3 10=7+3 10=5+5 。 問(wèn)題2:函數(shù)f(int n)的功能是: 對(duì)給定的>2的偶數(shù),進(jìn)行分解成兩個(gè)質(zhì)數(shù)之和的所有分解,但第一個(gè)和數(shù)(質(zhì)數(shù))必須在n-2至n/2范圍內(nèi) 。4、程序 #include <stdio.h> int k=0; /* k是全局變量 */ void f(int n) /* 求f(3); 是遞歸函數(shù) */ k+; /* k1 2 3 ,4 5 6 7 */ if(n!=1) f(n-1); /* f(2) f(1) */ f(n-1); /* f(1) f(2) f(1) f(1) */ main() f(3); printf(“%d”,k); 問(wèn)題:1 程序輸出的結(jié)果為: 7 。 2 當(dāng)n值范圍為什么時(shí),函數(shù)調(diào)用f(n)無(wú)限遞歸 n<=0 。四、 請(qǐng)按下列要求編程(10分)請(qǐng)編寫一個(gè)帶命令行參數(shù)的程序prog.c。當(dāng)運(yùn)行prog n1 n2 filename時(shí)將文本文件filename的第n1行到第n2行按原樣在標(biāo)準(zhǔn)輸出(終端)上輸出;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 茂名二模文綜政治試題
- JavaScript Vue.js前端開(kāi)發(fā)任務(wù)驅(qū)動(dòng)式教程-課件 仇善梁 模塊1-8 JavaScript知識(shí)入門及應(yīng)用 - Vue.js基礎(chǔ)知識(shí)及應(yīng)用
- 老年骨科護(hù)理課件
- 老年術(shù)后護(hù)理課件
- 老年護(hù)理案例分析課件
- 出租車司機(jī)權(quán)益保障及服務(wù)質(zhì)量提升合同
- 餐飲店加盟與承包合同規(guī)范
- 成品柴油零售連鎖經(jīng)營(yíng)合同
- 車棚施工安全標(biāo)準(zhǔn)與環(huán)境保護(hù)合同
- 老人二便護(hù)理課件
- 集裝箱七點(diǎn)檢查表
- 部編初一語(yǔ)文閱讀理解最全答題模板與技巧+專項(xiàng)訓(xùn)練練習(xí)題
- 2023年湖北省高中學(xué)業(yè)水平合格性考試數(shù)學(xué)試題試卷及答案解析
- 保定一中1+3物理試卷
- 弟子規(guī)注音A4直接打印版
- 金融學(xué)原理重點(diǎn)總結(jié)彭興韻
- Cmk設(shè)備能力指數(shù)分析表
- J17J177 鋼絲網(wǎng)架珍珠巖復(fù)合保溫外墻板建筑構(gòu)造
- 水泥檢測(cè)培訓(xùn)試題(附答案)
- 譯林版三年級(jí)英語(yǔ)上冊(cè)《全冊(cè)課件》ppt
- 高標(biāo)準(zhǔn)農(nóng)田建設(shè)上圖入庫(kù)(技術(shù)培訓(xùn))
評(píng)論
0/150
提交評(píng)論