計(jì)算機(jī)二級(jí)C語(yǔ)言測(cè)試題及答案
計(jì)算機(jī)c語(yǔ)言的學(xué)習(xí)內(nèi)容是DOS命令,計(jì)算機(jī)組成原理,多媒體、數(shù)據(jù)庫(kù)操作、計(jì)算機(jī)網(wǎng)絡(luò)、C語(yǔ)言程序設(shè)計(jì)、上機(jī)考試。以下是百分網(wǎng)小編為大家編輯的計(jì)算機(jī)c語(yǔ)言考試題及答案,歡迎閱讀!
1.
#include
main()
{ int a=1,b=3,c=5;
if (c==a+b)
printf("yes\n");
else
printf("no\n");
}
運(yùn)行結(jié)果為:no
詳見(jiàn)教材p89 選擇結(jié)構(gòu)
詳見(jiàn)教材p91關(guān)系符號(hào)
詳見(jiàn)附錄D p378符號(hào)的優(yōu)先級(jí)
==表示判斷符號(hào)兩邊的值是否相等;=表示將符號(hào)右邊的值賦給左邊的變量
本題考點(diǎn)是選擇結(jié)構(gòu)3種基本形式的第二種
選擇結(jié)構(gòu)三種一般形式中的“語(yǔ)句”皆為復(fù)合語(yǔ)句,復(fù)合語(yǔ)句要用{ }括起來(lái),只有當(dāng)復(fù)合語(yǔ)句中只包括一條語(yǔ)句時(shí)可以省略{ },此題即如此,因此兩個(gè)printf操作沒(méi)有加{ }
若c==a+b成立,則執(zhí)行printf("yes\n");
否則(即c==a+b不成立),執(zhí)行printf("no\n");
+的優(yōu)先級(jí)高于==,因此先算a+b,值為4, 表達(dá)式5==4不成立,因此執(zhí)行printf("no\n");即輸出字符串no
2.
#include
main()
{ int a=12, b= -34, c=56, min=0;
min=a;
if(min>b)
min=b;
if(min>c)
min=c;
printf("min=%d", min);
}
運(yùn)行結(jié)果為: min=-34
詳見(jiàn)教材p89 選擇結(jié)構(gòu)
本題考點(diǎn)是選擇結(jié)構(gòu)3種基本形式的第一種
一共包含了兩個(gè)選擇結(jié)構(gòu)(兩個(gè)if語(yǔ)句)
定義變量,并賦值 此時(shí)a=12, b= -34, c=56, min=0
將a中值拷貝,賦給min,覆蓋了min中的0,此時(shí)min中的值被更新為12。
若min>b成立,則執(zhí)行min=b;
若min>c成立,則執(zhí)行min=c;
輸出min中的值
12大于-34,第一個(gè)if語(yǔ)句的表達(dá)式成立,因此執(zhí)行min=b; 執(zhí)行后min中的值被更新為-34.
-34小于56,第二個(gè)if語(yǔ)句的表達(dá)式不成立,因此不執(zhí)行min=c;
最后輸出min中的值,為-34.
3.
#include
main()
{ int x=2,y= -1,z=5;
if(x if(y<0)
z=0;
else
z=z+1;
printf(“%d\n”,z);
}
運(yùn)行結(jié)果為:5
遇到選擇結(jié)構(gòu),首先要明確條件表達(dá)式成立時(shí)執(zhí)行哪些操作。本題中,第一個(gè)if語(yǔ)句,其后的復(fù)合語(yǔ)句沒(méi)有大括號(hào){ },說(shuō)明復(fù)合語(yǔ)句中只包含一條語(yǔ)句,進(jìn)而省略了{(lán) }。內(nèi)層的if...else...是選擇結(jié)構(gòu)的第二種基本形式,在結(jié)構(gòu)上視為一條語(yǔ)句。因此內(nèi)層的if...else...作為第一個(gè)if語(yǔ)句的復(fù)合語(yǔ)句。
若表達(dá)式x 若y<0,則執(zhí)行z=0;
否則(即y>=0),執(zhí)行z=z+1;
輸出z
2>-1,表達(dá)式x 輸出z中的值為5
4.
#include
main()
{ float a,b,c,t;
a=3;
b=7;
c=1;
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf("%5.2f,%5.2f,%5.2f",a,b,c);
}
運(yùn)行結(jié)果為:1.00,2.00,7.00
詳見(jiàn)教材p72數(shù)據(jù)的輸出形式
本題包含了3個(gè)if語(yǔ)句,每個(gè)if語(yǔ)句后的{ }都不可省略,因?yàn)槊總(gè){ }中都包含了多條語(yǔ)句
若表達(dá)式a>b成立,則執(zhí)行{t=a;a=b;b=t;}
若表達(dá)式a>c成立,則執(zhí)行{t=a;a=c;c=t;}
若表達(dá)式b>c成立,則執(zhí)行{t=b;b=c;c=t;}
輸出a,b,c中的值,要求輸出的每個(gè)數(shù)據(jù)寬度為5個(gè)空格,小數(shù)部分保留2位,數(shù)據(jù)右對(duì)齊
3小于7,因此表達(dá)式a>b不成立,因此不執(zhí)行{t=a;a=b;b=t;}
3大于1,因此表達(dá)式a>c成立,則執(zhí)行{t=a;a=b;b=t;}。第一句,將a中的3拷貝,粘貼到t中;第二句,將c中的1拷貝,粘貼到a中,覆蓋掉先前的3;第三句。將t中的3拷貝到c中,覆蓋掉c中先前的1. 執(zhí)行完復(fù)合語(yǔ)句后實(shí)現(xiàn)了a,c元素的值的互換,a為1,c為3,t為3,。
7大于c中的3,因此b>c成立,執(zhí)行則執(zhí)行{t=b;b=c;c=t;},過(guò)程同上,執(zhí)行后b為3,c為7,t為7
此時(shí)輸出a,b,c中的值為1.00,2.00,7.00
5.
#include< stdio .h >
main ( )
{floatc=3.0 , d=4.0;
if ( c>d ) c=5.0;
else
if ( c==d ) c=6.0;
elsec=7.0;
printf ( “%.1f\n”,c ) ;
}
運(yùn)行結(jié)果為:7.0
此題為if...else...語(yǔ)句的嵌套,第二if...else...作為第一個(gè)if...else...語(yǔ)句else部分的復(fù)合語(yǔ)句。
若表達(dá)式c>d成立,則執(zhí)行c=5.0;
否則(表達(dá)式c>d不成立)
若表達(dá)式c==d成立,則執(zhí)行c=6.0;
否則,執(zhí)行c=7.0;
輸出c中的值
3.0小于4.0,因此表達(dá)式c>d不成立,執(zhí)行第二個(gè)if…else…。
3.0不等于4.0,因此表達(dá)式c==d不成立,執(zhí)行c=7.0,將7.0賦給c, 覆蓋掉c中的3.0,此時(shí)c中的值為7.0
輸出此時(shí)的c中的值
1.
#include "stdio.h"
main()
{char c;
c=getchar();
while(c!='?') {putchar(c);c=getchar(); }
}
如果從鍵盤(pán)輸入abcde?fgh(回車(chē))
運(yùn)行結(jié)果為:abcde
2.
#include
main()
{ char c;
while((c=getchar())!=’$’)
{ if(‘A’<=c&&c<=‘Z’)putchar(c);
else if(‘a’<=c&&c<=‘z’)putchar(c-32);}
}
當(dāng)輸入為ab*AB%cd#CD$時(shí),運(yùn)行結(jié)果為:ABABCDCD
3.
#include
main()
{ int x, y =0;
for(x=1;x<=10;x++)
{ if(y>=10)
break;
y=y+x;
}
printf(“%d %d”,y,x);
}
運(yùn)行結(jié)果為:10 5
詳見(jiàn)教材p120for語(yǔ)句
詳見(jiàn)教材p126~128break,continue語(yǔ)句
for( 表達(dá)式1;表達(dá)式2;表達(dá)式3)
{
}
(1) 先求解表達(dá)式1
(2) 求解表達(dá)式2,若其值為真,執(zhí)行循環(huán)體,然后執(zhí)行 (3). 若為假,則結(jié)束循環(huán),轉(zhuǎn)到(5)
(3) 求解表達(dá)式3
(4) 轉(zhuǎn)回上面 (2)繼續(xù)執(zhí)行
(5) 循環(huán)結(jié)束,執(zhí)行for語(yǔ)句下面的一個(gè)語(yǔ)句
break ,跳出循環(huán)體;continue,結(jié)束本次循環(huán)(第i次循環(huán)),繼續(xù)執(zhí)行下一次循環(huán)(第i+1次循環(huán))
此題 表達(dá)式1為x=1,表達(dá)式2(循環(huán)條件)為x<=10,表達(dá)式3為x++
初值x為1,y為0,循環(huán)條件(即表達(dá)式2)x<=10成立,進(jìn)入循環(huán)體
第1次循環(huán)
執(zhí)行if語(yǔ)句。0小于10,if語(yǔ)句的條件表達(dá)式不成立,不執(zhí)行break;
執(zhí)行y=y+x; y=0+1=1
轉(zhuǎn)向表達(dá)式3,執(zhí)行x++,x=x+1=1+1=2。循環(huán)條件x<=10成立,進(jìn)入第2次循環(huán)
第2次循環(huán)
執(zhí)行if語(yǔ)句。1小于10,if語(yǔ)句的條件表達(dá)式不成立,不執(zhí)行break;
執(zhí)行y=y+x; y=1+2=3
轉(zhuǎn)向表達(dá)式3,執(zhí)行x++,x=x+1=2+1=3。循環(huán)條件x<=10成立,進(jìn)入第3次循環(huán)
第3次循環(huán)
執(zhí)行if語(yǔ)句。3小于10,if語(yǔ)句的條件表達(dá)式不成立,不執(zhí)行break;
執(zhí)行y=y+x; y=3+3=6
轉(zhuǎn)向表達(dá)式3,執(zhí)行x++,x=x+1=3+1=4。循環(huán)條件x<=10成立,進(jìn)入第4次循環(huán)
第4次循環(huán)
執(zhí)行if語(yǔ)句。6小于10,if語(yǔ)句的條件表達(dá)式不成立,不執(zhí)行break;
執(zhí)行y=y+x; y=6+4=10
轉(zhuǎn)向表達(dá)式3,執(zhí)行x++,x=x+1=4+1=5。循環(huán)條件x<=10成立,進(jìn)入第5次循環(huán)
第5次循環(huán)
執(zhí)行if語(yǔ)句。10等于10,if語(yǔ)句的條件表達(dá)式成立,執(zhí)行break,跳出循環(huán)。
從break跳出至for語(yǔ)句的下一條語(yǔ)句。執(zhí)行printf(“%d %d”,y,x);
輸出當(dāng)前的y與x.結(jié)果為10 5
4.
#include
main( )
{char ch;
ch=getchar( );
switch(ch)
{case‘A’ : printf(“%c”,’A’);
case‘B’ : printf(“%c”,’B’); break;
default: printf(“%s\n”,”other”);
} }
當(dāng)從鍵盤(pán)輸入字母A時(shí),運(yùn)行結(jié)果為:AB
詳見(jiàn)教材p103,switch語(yǔ)句
switch(表達(dá)式)
{ case常量1 :語(yǔ)句1
case常量2 :語(yǔ)句2
┇┇ ┇
case常量n :語(yǔ)句n
default :語(yǔ)句n+1
}
其中表達(dá)式,常量1,…,常量n都為整型或字符型
case相當(dāng)于給出執(zhí)行程序的入口和起始位置,若找到匹配的常量,則從此處開(kāi)始往下執(zhí)行程序,不再匹配常量,直至遇到break或switch結(jié)束
本題過(guò)程:
首先從鍵盤(pán)接收一個(gè)字符’A’并將其放在變量ch中。
執(zhí)行switch語(yǔ)句。Switch后面的條件表達(dá)式為ch,因此表達(dá)式的值即為字符’A’. 用字符’A’依次與下面的 case中的常量匹配。
與第1個(gè)case后的常量匹配,則從其后的語(yǔ)句開(kāi)始往下執(zhí)行程序(在執(zhí)行過(guò)程中不再進(jìn)行匹配。)因此先執(zhí)行printf(“%c”,’A’),屏幕上輸出A;再往下繼續(xù)執(zhí)行printf(“%c”,’B’),屏幕上輸出B;再繼續(xù)執(zhí)行break, 此時(shí)跳出switch語(yǔ)句。
5.
#include
main( )
{ int a=1,b=0;
scanf(“%d”,&a);
switch(a)
{case 1: b=1;break;
case 2: b=2;break;
default : b=10;}
printf("%d ", b);
}
若鍵盤(pán)輸入5,運(yùn)行結(jié)果為:10
本題過(guò)程:
首先用scanf函數(shù)為變量a賦值為5。
執(zhí)行switch語(yǔ)句。switch后面的條件表達(dá)式為a,因此表達(dá)式的值即為5. 用5依次與下面 case中的常量匹配。沒(méi)有找到匹配的常量,因此兩個(gè)case后的語(yǔ)句都不執(zhí)行。執(zhí)行default后面的語(yǔ)句b=10;將10賦給變量b。
輸出變量b,結(jié)果為10
【計(jì)算機(jī)二級(jí)C語(yǔ)言測(cè)試題及答案】相關(guān)文章:
計(jì)算機(jī)二級(jí)C語(yǔ)言測(cè)試題與答案02-22
2017計(jì)算機(jī)二級(jí)C語(yǔ)言測(cè)試題及答案08-09
計(jì)算機(jī)二級(jí)《C語(yǔ)言》測(cè)試題及答案202403-23
計(jì)算機(jī)二級(jí)《C語(yǔ)言》測(cè)試題與答案解析02-24
計(jì)算機(jī)二級(jí)《C語(yǔ)言》預(yù)測(cè)試題及答案06-10
2023計(jì)算機(jī)二級(jí)C語(yǔ)言測(cè)試題及答案01-01
計(jì)算機(jī)二級(jí)C語(yǔ)言的測(cè)試題及答案解析03-21