![](https://img.examw.com/index/logo.png)
二、填空題:本大題共10小題,每小題2分,共20分
11.設(shè)int a=11;,表達(dá)式a%3+a/4的值是_______。
12.設(shè)int x=4,y=2;,表達(dá)式(x>>y)+(x<<9)的值是_______。
13.設(shè)int s[5]={2,4,6,8},*p=5;,執(zhí)行語(yǔ)句 printf("%d,%d\n",s[2],*(p+4));后輸出結(jié)果_______。
14.設(shè) int a;float b=1.9;,執(zhí)行語(yǔ)句a=(int)b;后變量a和b的值分別是_______。
15.設(shè)int n=5;,執(zhí)行語(yǔ)句 printi("%d\n",n=3*4,n*5,n+1));后輸出結(jié)果是_______。
16.設(shè)int x=2;,執(zhí)行語(yǔ)句pim("%d",x++);后輸出結(jié)果是_______。
17.設(shè)int a=1,b=2,c3;,表達(dá)式a||b-a&&c+!a的值是_______。
18.系統(tǒng)函數(shù) getchar()的功能是_______。
19.設(shè)chr s[ ]="\\1234";,執(zhí)行語(yǔ)句 printi("%d,%d\n",sizeof(s),strlen(s));后輸出結(jié)果是_______。
110.使用系統(tǒng)函數(shù)strcat()時(shí),用到的文件包含命令是_______。
三、程序分析題:本大題共4小題,每小題4分,共16分。閱讀下列程序,寫出輸出結(jié)果。
21.#include int main(void){ int i=0; char *Brics[]={"Brazil","Russia","India","China", "South Africa"}; do { printf("%s\n",Brics[i]); i=i+2; }while(i<6); return 0;}
22.#include int main(void){ int x,y=3; for(x=1;x<=10;x++)
{
if(y>=10) break; if(y%3==2) { y=y+3; continue; } y=y-1; } printf("%d,%d\n",x,y); return 0;}
23.#include int main(void){ char ch='-'; int a=1,b=2; switch(ch) { case '+': a+=b; case '-': a-=b; case '*': a*=b; case '/': a/=b; } printf("%d\n",a); return 0;}
24.#include int main(void){ int a[10]={10,9,8,7,6,5,4,3,2,1},i,j=9,temp; int *p=a; for(i=0i<5;i++) { temp=a[i]; a[i]=a[j]; a[j--]=temp; } for(i=0;i<10;i++) printf("%d ",*p++); printf("\n"); return 0;}
四、程序填充題:本大題共3小題,每小題6分,共18分。請(qǐng)將下列程序橫線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。
31.十個(gè)人參加選舉,有三個(gè)候選人,每人投一票。輸出每位候選人的姓名和得票數(shù)。#include #include t ypedef struct person{ char name[20]; int count;}PER;int main( void){ int i,j; char NAME[20]; PER leader[3]={{"Li",0},{"Liu",0};{"Wang",0}}; for(i=0;i<_______;i++) /*第一空*/ { scanf("%s",NAME); for(j=0;j<3;j++) if(strcmp(NAME,leader[j]-name)==0) _______; /*第二空*/ } for(i=0;i<3;i++) printf("%s,%d\n",_______,leader[i].count); /*第三空*/ return 0;}
32.鍵入一串字符,以回車換行符為結(jié)束標(biāo)志,分別統(tǒng)計(jì)并輸出其中英文字母和數(shù)字的個(gè)數(shù)。#include int main(void){ _______; /*第一空*/ int letter=0,digital=0; while((ch=getchar())!='_______') /*第二空*/ if(ch>='A'&&ch<='z'|| ch="">='a'&&ch<='z') letter++; else if(_______) digital++; /*第三空*/ printf("Letter=%d,Digital=%d\n",letter,digital); return 0;}
33.從鍵盤為二維數(shù)組元素輸入數(shù)據(jù),計(jì)算并輸出全部元素之和。#include#define N 5int main(void){ int i,j; float a[N][N],sum=_______; /*第一空*/ fox(i=0;i< return *第三空* printf(?sum='%.3f\n",_______);' } *第二空* sum="sum+_______;" scanf(?%f?,&a[i][j]); {
五、程序設(shè)計(jì)題:本大題共2小題,每小題8分,共16分。
41.從文本文件old.txt讀取字符,將其中的數(shù)字字符'0'、'1'、'2'、……'9'分別用英文字母字符'Z'、'Y'、'X'、'W'、'V','U'、'T'、'S'、'R'、'Q'替換,其余字符不變,結(jié)果寫入文本文件new.txt,并分別將兩個(gè)文件的內(nèi)容輸出到屏幕。
42.(1)編寫函數(shù) int move(int b[],int n, int m),將整型數(shù)組b的n個(gè)元素循環(huán)右移m個(gè)位置。 例如:n=10,m=2時(shí),移動(dòng)前、后數(shù)組b中的數(shù)據(jù)如下圖所示。
(2)編寫主函數(shù),從鍵盤輸入數(shù)組元素及n和m(0