C語言模擬試題練習
人的知識愈廣,人的本身也愈臻完善。以下是小編為大家搜索整理的C語言模擬試題練習,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!
基本輸入輸出及流程控制
1.
#include
main()
{ int a=1,b=3,c=5;
if (c==a+b)
printf("yesn");
else
printf("non");
}
運行結果為:no
詳見教材p89 選擇結構
詳見教材p91關係符號
詳見附錄D p378符號的優先級
==表示判斷符號兩邊的值是否相等;=表示將符號右邊的值賦給左邊的變量
本題考點是選擇結構3種基本形式的第二種
選擇結構三種一般形式中的“語句”皆為複合語句,複合語句要用{ }括起來,只有當複合語句中只包括一條語句時可以省略{ },此題即如此,因此兩個printf操作沒有加{ }
若c==a+b成立,則執行printf("yesn");
否則(即c==a+b不成立),執行printf("non");
+的優先級高於==,因此先算a+b,值為4, 表達式5==4不成立,因此執行printf("non");即輸出字符串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);
}
運行結果為: min=-34
詳見教材p89 選擇結構
本題考點是選擇結構3種基本形式的第一種
一共包含了兩個選擇結構(兩個if語句)
定義變量,並賦值 此時a=12, b= -34, c=56, min=0
將a中值拷貝,賦給min,覆蓋了min中的0,此時min中的值被更新為12。
若min>b成立,則執行min=b;
若min>c成立,則執行min=c;
輸出min中的值
12大於-34,第一個if語句的表達式成立,因此執行min=b; 執行後min中的值被更新為-34.
-34小於56,第二個if語句的表達式不成立,因此不執行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(“%dn”,z);
}
運行結果為:5
遇到選擇結構,首先要明確條件表達式成立時執行哪些操作。本題中,第一個if語句,其後的複合語句沒有大括號{ },説明覆合語句中只包含一條語句,進而省略了{ }。內層的...是選擇結構的第二種基本形式,在結構上視為一條語句。因此內層的...作為第一個if語句的複合語句。
若表達式x 若y<0,則執行z=0;
否則(即y>=0),執行z=z+1;
輸出z
2>-1,表達式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);
}
運行結果為:1.00,2.00,7.00
詳見教材p72數據的輸出形式
本題包含了3個if語句,每個if語句後的{ }都不可省略,因為每個{ }中都包含了多條語句
若表達式a>b成立,則執行{t=a;a=b;b=t;}
若表達式a>c成立,則執行{t=a;a=c;c=t;}
若表達式b>c成立,則執行{t=b;b=c;c=t;}
輸出a,b,c中的值,要求輸出的每個數據寬度為5個空格,小數部分保留2位,數據右對齊
3小於7,因此表達式a>b不成立,因此不執行{t=a;a=b;b=t;}
3大於1,因此表達式a>c成立,則執行{t=a;a=b;b=t;}。第一句,將a中的3拷貝,粘貼到t中;第二句,將c中的1拷貝,粘貼到a中,覆蓋掉先前的3;第三句。將t中的`3拷貝到c中,覆蓋掉c中先前的1. 執行完複合語句後實現了a,c元素的值的互換,a為1,c為3,t為3,。
7大於c中的3,因此b>c成立,執行則執行{t=b;b=c;c=t;},過程同上,執行後b為3,c為7,t為7
此時輸出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 ( “%.1fn”,c ) ;
}
運行結果為:7.0
此題為...語句的嵌套,第二...作為第一個...語句else部分的複合語句。
若表達式c>d成立,則執行c=5.0;
否則(表達式c>d不成立)
若表達式c==d成立,則執行c=6.0;
否則,執行c=7.0;
輸出c中的值
3.0小於4.0,因此表達式c>d不成立,執行第二個if…else…。
3.0不等於4.0,因此表達式c==d不成立,執行c=7.0,將7.0賦給c, 覆蓋掉c中的3.0,此時c中的值為7.0
輸出此時的c中的值
6.
#include
main()
{ int m;
scanf("%d", &m);
if (m >= 0)
{ if (m%2 == 0) printf("%d is a positive evenn", m);
else printf("%d is a positive oddn", m); }
else
{ if (m % 2 == 0)printf("%d is a negative evenn", m);
else printf("%d is a negative oddn", m); }
}
若鍵入-9,則運行結果為: -9 is a negative odd
7.
#include
main()
{ int num=0;
while(num<=2){ num++;printf("%dn",num);}
}
運行結果為:
1
2
3
詳見教材p115循環結構
當循環條件num<=2成立的時候,執行循環體{ num++;printf("%dn",num);}中的語句。
循環初值num為0;
循環條件num<=2成立
第1次循環:執行num++;即將num中的值加1,執行後num為1;
執行printf("%dn",num);在屏幕上輸出num中的值,即輸出1,之後換行
此時num中的值為1,循環條件num<=2成立
第2此循環:執行num++;即將num中的值加1,執行後num為2;
執行printf("%dn",num);在屏幕上輸出num中的值,即輸出2,之後換行
此時num中的值為2,循環條件num<=2成立
第3此循環:執行num++;即將num中的值加1,執行後num為3;
執行printf("%dn",num);在屏幕上輸出num中的值,即輸出3,之後換行
此時num中的值為3,循環條件num<=2不成立,結束循環。
8.
#include
main( )
{ int sum=10,n=1;
while(n<3) {sum=sum-n;n++; }
printf(“%d,%d”,n,sum);
}
運行結果為:3,7
當循環條件n<3成立的時候,執行循環體{sum=sum-n;n++; }中的語句。
循環初值sum為10,n為1;
循環條件n<3成立
第1次循環:執行sum=sum-n=10-1=9;
執行n++,即將n中的值加1,執行後n為2;
此時n中的值為2,sum中的值為9,循環條件n<3成立,繼續執行循環
第2次循環:執行sum=sum-n=9-2=7;
執行n++,即將n中的值加1,執行後n為3;
輸出此時n,sum中的值,即為3,7。需要注意,在printf(“%d,%d”,n,sum); 中要求輸出的數據彼此間用逗號間隔,因此結果的兩個數據間一定要有逗號
9.
#include
main()
{ int num,c;
scanf("%d",&num);
do{c=num%10;printf("%d",c);}while((num/=10)>0);
printf("n");
}
從鍵盤輸入23,則運行結果為:32
詳見教材p117循環結構;p60複合的賦值運算符
do{ }while(表達式);
先無條件執行循環體,再判斷循環條件。注意while(表達式)後有分號
定義整型變量num,c;
為num賦一個整型值;
執行{c=num%10;printf("%d",c);}直到循環條件(num/=10)>0不成立;
輸出換行
已知為num賦值23
第1次執行循環體
執行c=num%10=23%10=3;
執行printf("%d",c);輸出3
判斷循環條件 num/=10等價於num=num/10; 因此num=23/10=2, 2大於0,因此循環條件(num/=10)>0成立,繼續執行循環體。執行完第1次循環時,num為2,c為3
第2次執行循環體
執行c=2%10=2;
執行printf("%d",c);再輸出2
判斷循環條件num=2/10=0,0等於0,因此循環條件(num/=10)>0不成立。結束循環
10
#include
main()
{ int s=0,a=5,n;
scanf("%d",&n);
do { s+=1;a=a-2; }while(a!=n);
printf("%d,%dn",s,a);
}
若輸入的值1,運行結果為: 2,1
詳見教材p117循環結構;p60複合的賦值運算符
執行{ s+=1;a=a-2; }直到循環條件a!=n不成立;
已知為n賦值1,s為0,a為5
第1次執行循環體
執行s+=1;等價於s=s+1=0+1
執行a=a-2; a=5-2=3
判斷循環條件,3不等於1,因此循環條件a!=n成立,繼續執行循環體。
執行完第1次循環時,s為1,a為3
第2次執行循環體
執行s+=1;等價於s=s+1=1+1=2
執行a=a-2; a=3-2=1
判斷循環條件,1等於1,因此循環條件a!=n不成立,結束循環。
執行完第2次循環時,s為2,a為1
輸出此時s,a中的值,結果為2,1