二 填空題
1.若從鍵盤輸入58,則以下程序輸出的結果是 585858 。
main()
{ int a;
scanf(“%d”,&a);
if(a>50) printf(“%d”,a);
if(a>40) printf(“%d”,a);
if(a>30) printf(“%d”,a);
}
2.下面程序的運行結果是 -1 。
main()
{
int a=2, b=3, c;
c=a;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
printf(“%d\n”,C);
}
3.以下程序實現(xiàn):輸入三個整數,按從大到小的順序進行輸出。請?zhí)羁铡?/P>
main()
{
int x, y, z, c;
scanf(“%d %d %d”, &x, &y, &z);
if( y>x ) { c=x; x=y; y=c;}
if( z>x ) { c=x; x=z; z=c;}
if( z>y ) { c=y; y=z; z=c;}
printf(“ %d %d %d”, x, y, z);
}
4.如果運行時輸入字符Q,則下面程序的運行結果是 Q 。
main()
{
char ch;
scanf(“%c”, &ch);
ch=(ch>=‘A’&& ch<=‘Z’)? (ch+32):ch;
ch=(ch>=‘a’&& ch<=‘z’)? (ch-32):ch;
printf(“%c”, ch);
}
5.若x為int類型,請以最簡單的形式寫出與邏輯表達式!x等價的C語言關系表達式 x==0 。
6.表示“整數x的絕對值大于5”時值為“真”的C語言表達式是 x>5||x<-5 。
7.下列程序段的輸出結果是 passwarn 。
int n='c';
switch(n++)
{ default: printf("error");break;
case 'a':case 'A':case 'b':case 'B':printf("good");break;
case 'c':case 'C':printf("pass");
case 'd':case 'D':printf("warn");
}
8.以下程序將兩個數從小到大輸出。
main()
{
float a, b, t ;
scanf( "%f %f" , &a, &b);
if(a>b)
{ t=a;
a=b ;
b=t;
}
printf(“%5.2f, %5.2f\n”, a, b);
}
9.若輸入8642,以下程序的輸出結果為 place=4,每位數字為:8,6,4,2 。
main()
{
long int num;
int gw, sw, bw, qw, ww, place;
printf(“請輸入一個0~99999之間的整數:”);
scanf(“%ld”, &num);
if(num>9999) place=5;
else if(num>999) place=4;
else if(num>99) place=3;
else if(num>9) place=2;
else place=1;
printf(“place=%d,”, place);
printf(“每位數字為: ”);
ww=num/10000;
qw=(num-ww*10000)/1000;
bw=(num-ww*10000-qw*1000)/100;
sw=(num-ww*10000-qw*1000-bw*100)/10;
gw=num-ww*10000-qw*1000-bw*100-sw*10;
switch(place)
{case 5: printf(“%d, %d, %d, %d, %d”, ww, qw, bw, sw, gw); break;
case 4: printf(“%d, %d, %d, %d”, qw, bw, sw, gw); break;
case 3: printf(“%d, %d, %d”, bw, sw, gw); break;
case 2: printf(“%d, %d”, sw, gw); break;
case 1: printf(“%d”, gw); break;
}
}
10.若輸入1988,程序運行的結果為 1988年是閏年 ;若輸入1989,則結果為 1989年不是閏年 。
main()
{int year, leap;
scanf(“%d”, &year);
if(year%4) leap=0;
else if(year%100) leap=1;
else if(year%400) leap=0;
else leap=1;
if(leap) printf(“%d年是閏年。\n”, year);
else printf(“%d年不是閏年。\n”, year);
}
11.用以下程序把大寫字母A~Z轉換成對應的小寫字母a ~ z,其他字符不轉換。
main()
{char ch;
scanf ( "%c",&ch );
ch=( ch>='A'&&ch<='Z' )?ch+32:ch;
printf(“char=%c\n”, ch );
}
12.條件“20
13.若已知a=10, b=20, 則表達式!a
14.若已定義int a=25, b=14, c=19; 以下三目運算符(?:)所構成的語句的執(zhí)行結果是
###a=26,b=13,c=19 。
a++<=25&&b--<=2&&c++?printf(“***a=%d, b=%d, c=%d\n”, a, b, C): printf(“###a=%d, b=%d, c=%d\n”, a, b, C);
15.以下兩條if語句可合并成一條if語句為 if(a>b){y=2;printf("****y=%d\n",y);} else {x=1;printf("####x=%d\n",x);} 。
if(a<=b) x=1;
else y=2;
if(a>b) printf(“**** y=%d\n”, y);
else printf(“#### x=%d\n”, x);
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |