版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021c語言練習(xí)試題庫
C語言練習(xí)試題庫1
1.
#incIude"stdio.h"
main()
(charc;
c=get);
whiIe(c!='?'){putc);c=get);}
}
如果從鍵盤輸入abcde?fgh(回車)
運(yùn)行結(jié)果為:abode
2.
#include
main()
{charc;
while((c=get))!=,$')
{if('A'<=c&&c<=,Z')putc);
elseif(<a,<=c&&c<=iz,)putc-32);)
)
當(dāng)輸入為運(yùn)行結(jié)果為:ABABCDCD
3.
#incIude
main()
(intx,y=0;
for(x=1;x<=10;x++)
{if(y>=10)
break;
y=y+x;
}
printf("%d%dn,y,x);
}
運(yùn)行結(jié)果為:105
詳見教材p120for語句
詳見教材p126~128break,continue語句
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語句下面的一個(gè)語句
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í)行汗語句。。小于10,汗語句的條件表達(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語句。1小于10,汗語句的條件表達(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語句。3小于10,if語句的條件表達(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語句。6小于10,汗語句的條件表達(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語句。10等于10,if語句的條件表達(dá)式成立,執(zhí)
行break,跳出循環(huán)。
從break跳出至for語句的下一條語句。執(zhí)行
printf(a%d%dw,y,x);
輸出當(dāng)前的y與x.結(jié)果為105
4.
#include
main()
{charch;
ch=get);
switch(ch)
{case'A':printf("%c",'A');
case'B':printf(“%c”,'B');break;
default:printf(“%s”,”otherw;
})
當(dāng)從鍵盤輸入字母A時(shí),運(yùn)行結(jié)果為:AB
詳見教材p103,switch語句
switch(表達(dá)式)
{case常量1:語句1
case常量2:語句2
III
III
III
case常量n:語句n
default:語句n+1
}
其中表達(dá)式,常量1,…,常量n都為整型或字符型
case相當(dāng)于給出執(zhí)行程序的入口和起始住置,若找到匹配
的常量,則從此處開始往下執(zhí)行程序,不再四配常量,直至遇到
break或switch結(jié)束
本題過程:
首先從鍵盤接收一個(gè)字符'A,并將其放在變量ch中。
執(zhí)行switch語句。Switch后面的條件表達(dá)式為ch,因此表
達(dá)式的值即為字符'A'.用字符'A'依次與下面的case中的
常量匹配。
與第1個(gè)case后的常量匹配,則從其后的語句開始往下執(zhí)
行程序(在執(zhí)行過程中不再進(jìn)行匹配。)因此先執(zhí)行
printf(“%c",'A'),屏幕上輸出A;再往下繼續(xù)執(zhí)行
printf("%c",'B'),屏幕上輸出B;再繼續(xù)執(zhí)行break,此
時(shí)跳出switch語句。
5.
#include
main()
{inta=1,b=0;
scanf("%d",&a);
switch(a)
(case1:b=1;break;
case2:b=2;break;
default:b=10;}
printf("%d",b);
}
若鍵盤輸入5,運(yùn)行結(jié)果為:10
本題過程:
首先用scanf函數(shù)為變量a賦值為5。
執(zhí)行switch語句oswitch后面的條件表達(dá)式為a,因此表達(dá)
式的值即為5.用5依次與下面case中的常量匹配。沒有找到
匹配的常量,因此兩個(gè)case后的語句都不執(zhí)行。執(zhí)行default
后面的語句b=10;將10賦給變量bo
輸出變量b,結(jié)果為10
6.
#include
main()_
{chargrade=,C';
switch(grade)
(
case'A':printf(w90-100n);
case仲:printf(w80-90”);
case,C':printf(^70-80”);
case'D':printf(w60-70”);break;
case'E,:printf(“<60”);
default:printf(werror!”);
)
}
運(yùn)行結(jié)果為:
70-80
60-70
本題過程:
首先從鍵盤接收一個(gè)字符'C'并將其放在變量grade中。
執(zhí)行switch語句oswitch后面的條件表達(dá)式為grade,因此
表達(dá)式的.值即為字符'1.用字符'C'依次與下面的case
中的常量匹配。
與第3個(gè)case后的常量匹配,則從其后的語句開始往下執(zhí)
行程序(在執(zhí)行過程中不再進(jìn)行匹配。)因此先執(zhí)行
printf(a70-80”);,屏幕上輸出70-80,并換行;再往下繼續(xù)
執(zhí)行printf(“60-70”),屏幕上輸出60-70,并換行;再繼續(xù)
執(zhí)行break,此時(shí)跳出switch語句。
7.
#include
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf(%dw,--y);
)
}
運(yùn)行結(jié)果為:
852
詳見教材p53,自增自減符號(hào)
此題表達(dá)式1被省略,表達(dá)式2(循環(huán)條件)為y>0,表達(dá)式
3為y―
初值y為9,循環(huán)條件(即表達(dá)式2)y>0成立,進(jìn)入循環(huán)體
第1次循環(huán)
執(zhí)行if語句。9%3==0,if語句的條件表達(dá)式成立,執(zhí)行
printf(%dw-y),即y先自減1變?yōu)?,然后在輸出,因此
屏幕上輸出8
轉(zhuǎn)向表達(dá)式3,執(zhí)行y—,y=y-1=8-1=70循環(huán)條件y>0成立,
進(jìn)入第2次循環(huán)
第2次循環(huán)
執(zhí)行if語句。7%3不為0,if語句的條件表達(dá)式不成立,
不執(zhí)行printf(%d”,---y)
轉(zhuǎn)向表達(dá)式3,執(zhí)行y—,y=y-1=7-1=6o循環(huán)條件y>0成立,
進(jìn)入第3次循環(huán)
第3次循環(huán)
執(zhí)行if語句。6%3==0,if語句的條件表達(dá)式成立,執(zhí)行
printf(%dw-y),即y先自減1變?yōu)?,然后在輸出,因此
屏幕上輸出5
轉(zhuǎn)向表達(dá)式3,執(zhí)行y—,y=y-1=5-1=4o循環(huán)條件y>0成立,
進(jìn)入第4次循環(huán)
第4次循環(huán)
執(zhí)行if語句。4%3不為0,if語句的條件表達(dá)式不成立,
不執(zhí)行printf(%d”,--y)
轉(zhuǎn)向表達(dá)式3,執(zhí)行y-,y=4-1=3。循環(huán)條件y>0成立,進(jìn)
入第5次循環(huán)
第5次循環(huán)
執(zhí)行if語句。3%3==0,if語句的條件表達(dá)式成立,執(zhí)行
printf(%dw-y),即y先自減1變?yōu)?,然后在輸出,因此
屏幕上輸出2
轉(zhuǎn)向表達(dá)式3,執(zhí)行v—,y=y-1=2-1=1。循環(huán)條件y>0成立,
進(jìn)入第5次循環(huán)
第6次循環(huán)
執(zhí)行if語句。1%3不為0,if語句的條件表達(dá)式不成立,
不執(zhí)行printf(%d”,---y)
轉(zhuǎn)向表達(dá)式3,執(zhí)行y—,y=1-1=0。循環(huán)條件y>0不成立,
循環(huán)結(jié)束。
8.
#include
main()
{inti,sum=0;i=1;
do{sum=sum+i;i++;}whiIe(i<=10);
printf("%d”,sum);
}
運(yùn)行結(jié)果為:55
9.
#incIude
#defineN4
main()
{inti;
intx1=1,x2=2;
printfC");
for(i=1;i<=N;i++)
{printf("%4d%4d",x1,x2);
if(i%2==0)
printfC");
x1=x1+x2;
x2=x2+x1;
}
}
運(yùn)行結(jié)果為:
1235
8132134
此題首先為整型變量賦初值x1=1,x2=2
表達(dá)式1為i=1,表達(dá)式2(循環(huán)條件)為i<=N即i<=4,表
達(dá)式3為i++
循環(huán)變量初值i為1,循環(huán)條件(即表達(dá)式2)i<=4成立,進(jìn)
入第1次循環(huán)
第1次循環(huán)
執(zhí)行printf("%4d%4d",x1,x2);因此屏幕上輸出12
執(zhí)行if語句。1%2不為0,if語句的條件表達(dá)式不成立,
不執(zhí)行print"'");
執(zhí)行*仁乂1+*2=1+2=3;此時(shí)*1中的值已變?yōu)?
執(zhí)行x2=x2+x1=2+3=5o
轉(zhuǎn)向表達(dá)式3,執(zhí)行i++,i為2。循環(huán)條件i<=4成立,進(jìn)入
第2次循環(huán)
第2次循環(huán)
執(zhí)行printf("%4d%4d",x1,x2);因此屏幕上輸出35
執(zhí)行if語句。2%2=0,if語句的條件表達(dá)式成立,執(zhí)行
printf("");換行
執(zhí)行x1=x1+x2=3+5=8;此時(shí)x1中的值已變?yōu)?
執(zhí)行x2=x2+x1=5+8=13。
轉(zhuǎn)向表達(dá)式3,執(zhí)行i++,i為30循環(huán)條件i<=4成立,進(jìn)入
第3次循環(huán)
第3次循環(huán)
執(zhí)行printf("%4d%4d",x1,x2);因此屏幕上輸出813
執(zhí)行if語句。3%2不為0,if語句的條件表達(dá)式不成立,
不執(zhí)行printf
執(zhí)行x1=x1+x2=8+13=21;此時(shí)x1中的值已變?yōu)?1
執(zhí)行x2=x2+x1=21+13=34o
轉(zhuǎn)向表達(dá)式3,執(zhí)行i++,i為4。循環(huán)條件i<=4成立,進(jìn)入
第4次循環(huán)
第2次循環(huán)
執(zhí)行printf("%4d%4d",x1,x2);因此屏幕上輸出2134
執(zhí)行if語句。4%2==0,if語句的條件表達(dá)式成立,執(zhí)行
printf("");換行
執(zhí)行*仁*1+*2=21+34=55;此時(shí)乂1中的值已變?yōu)?5
執(zhí)行x2=x2+x1=34+55=89o
轉(zhuǎn)向表達(dá)式3,執(zhí)行i++,i為50循環(huán)條件i<=4不成立,結(jié)
束循環(huán)
10
#incIude
main()
{intx,y;
for(x=30,y=0;x>=10,y<10;x—,y++)
x/=2,y+=2;
printf("x=%d,y=%d”,x,y);
}
運(yùn)行結(jié)果為:
x=0,y=1211.
#include
#defineN4
main()
{inti,j;
for(i=1;i<=N;i++)
{for(j=1;jprintfC");
printf("*");
printfC");
}}
運(yùn)行結(jié)果為:
*
*
*
*
詳見教材P41符號(hào)常量
用宏處理指令定義符號(hào)常量N為4,在編譯過程中,遇到N
即視為整數(shù)4。
外層for■循環(huán),表達(dá)式1為i=1,表達(dá)式2(循環(huán)條件)為i<=N,
表達(dá)式3為i++
內(nèi)層for循環(huán),表達(dá)式1為j=1,表達(dá)式2(循環(huán)條件)為
j首先計(jì)算外層循環(huán)的表達(dá)式1,i為1,使得循環(huán)條件i<=4
成立,進(jìn)入外層for循環(huán)體
外層for循環(huán)第1次此時(shí)i為1
內(nèi)層循環(huán)j=1,使得循環(huán)條件j執(zhí)行printf("*");
執(zhí)行printfC");換行
至此外層循環(huán)體執(zhí)行完,計(jì)算外層循環(huán)的表達(dá)式3,i++,
此時(shí)i為2.使得循環(huán)條件i<=4
成立,再次進(jìn)入外層for循環(huán)體
外層for循環(huán)第2次此時(shí)i為2
內(nèi)層循環(huán)j=1,使得循環(huán)條件j第1次執(zhí)行內(nèi)層循環(huán)體
printf("");
執(zhí)行內(nèi)層循環(huán)表達(dá)式3,J++為2,j執(zhí)行printf("*");
執(zhí)行printfC");換行
至此外層循環(huán)體執(zhí)行完,計(jì)算外層循環(huán)的表達(dá)式3,i++,
此時(shí)i為3.使得循環(huán)條件i<=4
成立,進(jìn)入外層for循環(huán)體
外層for循環(huán)第3次此時(shí)i為3
內(nèi)層循環(huán)j=1,使得循環(huán)條件j第1次執(zhí)行內(nèi)層循環(huán)體
printf("");
執(zhí)行內(nèi)層循環(huán)表達(dá)式3,j++為2,j第2次執(zhí)行內(nèi)層循環(huán)
體printf("");
執(zhí)行內(nèi)層循環(huán)表達(dá)式3,j++為3,j執(zhí)行printf("*");
執(zhí)行printf("");換行
至此外層循環(huán)體執(zhí)行完,計(jì)算外層循環(huán)的表達(dá)式3,i++,
此時(shí)i為4.使得循環(huán)條件i<=4
成立,進(jìn)入外層for循環(huán)體
外層for循環(huán)第4次此時(shí)i為4
內(nèi)層循環(huán)j=1,使得循環(huán)條件j第1次執(zhí)行內(nèi)層循環(huán)體
printf("");
執(zhí)行內(nèi)層循環(huán)表達(dá)式3,j++為2,j第2次執(zhí)行內(nèi)層循環(huán)
體printfC'");
執(zhí)行內(nèi)層循環(huán)表達(dá)式3,j++為3,j第3次執(zhí)行內(nèi)層循環(huán)
體print"'");
執(zhí)行內(nèi)層循環(huán)表達(dá)式3,J++為4,j執(zhí)行printf("*");
執(zhí)行printfC");換行
至此外層循環(huán)體執(zhí)行完,計(jì)算外層循環(huán)的表達(dá)式3,i++,
此時(shí)i為5.使得循環(huán)條件i<=4
不成立,跳出外層for循環(huán)體
c語言練習(xí)試題庫2
單項(xiàng)選擇題
1.有charc='1',下面說法中正確的是()。
A.語句putc+2);的輸出結(jié)果為51
B.語句put“%d”,c+2);的輸出結(jié)果為3
C.語句put“%c”,c+2);的輸出結(jié)果為51
D.語句put“%c”,c+2);的輸出結(jié)果為3
2.設(shè)c1,c2均是char型變量,則下面不正確的函數(shù)調(diào)用為
()0
A.scant("c1=2=%cw,&c1,&c2);
B.get);
C.putc2);
D.putd,c2);
3.為了表示關(guān)系x>=y>=z,下面C語言表達(dá)式中正確的是
()0
A.(x>=y)&&(y>=z)
B.(x>=y)and(y>=z)
C.(x>=y>=z)
D.(x>=y)&(y>=z)
4.設(shè)x,y,z,t為int型變量,則執(zhí)行以下語句后,t的值為
()0
x=y=z=1;
t=++x||++y&&++z;
A.不定值
B.2
C.1
D.0
5.對if語句中表達(dá)式的類型,下面正確的說法是()o
A.必須是關(guān)系表達(dá)式
B.必須是關(guān)系表達(dá)式或邏輯表達(dá)式
C.可以是任意表達(dá)式
D.必須是關(guān)系表達(dá)式或算術(shù)表達(dá)式
6.對for(表達(dá)式1;;表達(dá)式3)可以理解為()。
A.for(表達(dá)式1;0;表達(dá)式3)
B.for(表達(dá)式1;表達(dá)式1;表達(dá)式3)
C.for(表達(dá)式1;1;表達(dá)式3)
D.for(表達(dá)式1;表達(dá)式3;表達(dá)式3)
7.執(zhí)行語句for(i=1;i++<4;);之后,變量i的值為
()0
A.3
B.4
C.5
D.不確定
8.若二維數(shù)組a有m列,則在前的元素個(gè)數(shù)為
()0
A.j*m+i
B.i*m+j
C.i*m+j-i
D.i*m+j+1
9.下面說法中正確的是()。
A.在C語言中,可以使用動(dòng)態(tài)內(nèi)存分配技術(shù),定義元素個(gè)
數(shù)可變的數(shù)組
B.在C語言中,數(shù)組元素的個(gè)數(shù)可以不確定,允許隨即變
動(dòng)
C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致
D.在C語言中,定義數(shù)組后,就確定了它能容納的相同數(shù)
據(jù)類型元素的個(gè)數(shù)
10.不能把字符串:“good!”賦給數(shù)組b的語句是()o
A.charb[10]={,g'J'o'Jd'J!'};
B.charb[10];b="good!”;
C.charb[10]jstrcpy(b,"good!”);
D.charb[10]="good!”;
11.執(zhí)行下面程序段,給x,y賦值時(shí),不能作為數(shù)據(jù)分隔符
的是()。
intx,y;
scanf(w%d%d",&x&y);
A.回車
B.Tab鍵
C.回車
D.逗號(hào)
12.已知ch是字符型變量,下面不正確的賦值語句為
()0
A.ch=,a+b';
B.ch='';
C.ch='T+'9';
D.ch=5+9;
13.下面程序段的輸出結(jié)果是()。
charc1="6',c2='O';
printf(w%c,%c,%d,%dw,c1,c2,c1-c2,c1+c2);
A.因輸出格式不合法,輸出出錯(cuò)信息
B.6,0,6,102
C.6,0,7,6
D.6,0,5,7
14.在C語言的循環(huán)語句for,while,dowhile中,用于直
接中斷最內(nèi)層循環(huán)的語句是()。
A.switch
B.continue
C.break
D.if
15.下面的循環(huán)結(jié)構(gòu)中,不是無限循環(huán)的是()。
A.for(i=1;;i++)printf("%d”,i—);
B.i=1;while(i—){printf(w%dw,i++);}
C.i=1;do{printf(w%dw,i);i++;}whiIe(—i);
D.for(i=0;i;i++)printf(w%dw,i);
16.下面程序段的運(yùn)行結(jié)果是()。
charc□=”will;
u
printf("%dtstrlen(c));
A.14
B.3
C.9
D.字符串中有非法字符,輸出值不確定
17.下面說法中正確的是:在C語言程序中()。
A.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套
B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套
C.函數(shù)的定義和調(diào)用均不可以嵌套
D.函數(shù)的定義和調(diào)用均可以嵌套
18.若用數(shù)據(jù)名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是
()0
A.數(shù)據(jù)的首地址
B.數(shù)組第一個(gè)元素的值
C.數(shù)組中全部元素的值
D.數(shù)組元素的個(gè)數(shù)
19.以下敘述中不正確的是()。
A.在不同的函數(shù)中可以使用相同名字的變量
B.函數(shù)中的形式參數(shù)是局部變量
C.在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
D.在一個(gè)結(jié)函數(shù)內(nèi)的符合語句中定義的變量在本函數(shù)范圍
內(nèi)有效
20.一個(gè)變量的指針是指()。
A.該變量的值
B.該變量的地址
C.該變量的變量名
D.該變量的標(biāo)志
21.若有定義:inta[10],*p=a;,則p+5表示()。
A.元素a[5]的地址
B.元素a[5]的值
C.元素a[6]的地址
D.元素a[6]的值
22.C語言規(guī)定,在一個(gè)源程序中,main函數(shù)的住置
()0
A.必須在最開始
B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面
C.可以任意
D.必須在最后
23.一個(gè)C語言程序是由()。
A.一個(gè)主程序或若干個(gè)子程序組成
B.函數(shù)組成
C.若干過程組成
D.若干個(gè)子程序組成
24.下面哪項(xiàng)是構(gòu)成C語言的基本單位()。
A.函數(shù)
B.過程
C.子程序
D.子例程
25.以下正確的說法是()。
A.定義函數(shù)時(shí),形參的類型說明可以放在函數(shù)體內(nèi)
B.return后邊的值不能為表達(dá)式
C.如果函數(shù)值的類型和返回值類型不一致,以函數(shù)值類型
為準(zhǔn)
D.如果形參與實(shí)參的類型不一致,以函數(shù)值類型為準(zhǔn)
26.對于基類型相同的兩個(gè)指針變量之間,不能進(jìn)行的運(yùn)算
是()。
A.<
B.=
C.+
D.一
27.變量的指針,其含義是指該變量的()。
A.值
B.地址
C.名
D.一個(gè)標(biāo)志
28.下面程序運(yùn)行的結(jié)果是()。
voidss(char*s,chart)
{while(*s)
{if(*s==t)*s=t-匕'+'A';
s++;
}
)
voidmain()
{charstr1[100]=wabcddfefdbd”3d-
ss(str1,c);
printf(rt%s”,str1);
}
A.ABCDDFEFDBD
B.abcDDfefDbD
C.abcAAfefAbA
D.Abcddfefdbd
29.下列說法中正確的.是()。
A.結(jié)構(gòu)體變量可以作為一個(gè)整體進(jìn)行其值得輸入和輸出
B.結(jié)構(gòu)體成員項(xiàng)不可以是結(jié)構(gòu)體
C.結(jié)構(gòu)體成員項(xiàng)可以是結(jié)構(gòu)體或其他任何C語言的數(shù)據(jù)類
D.結(jié)構(gòu)體變量和結(jié)構(gòu)體是相同的概念
30.下面說法中不正確的是()。
A.一個(gè)C源程序可有一個(gè)或多個(gè)函數(shù)組成
B.一個(gè)C源程序必須包含一個(gè)main函數(shù)
C.C程序的基本組成是函數(shù)
D.在C程序中,注釋語句只能位于一條語句的后面
31.若執(zhí)行下面的程序段,則下面描述中正確的是()o
intk=5;
while(k=1)k—;
A.while循環(huán)執(zhí)行四次
B.循環(huán)體執(zhí)行一次
C.循環(huán)體一次也不執(zhí)行
D.死循環(huán)
32.下面關(guān)于for循環(huán)的正確描述是()。
A.for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況
B.for循環(huán)中是先執(zhí)行循環(huán)體語句,后判斷表達(dá)式
C.在for循環(huán)中,不能用break語句跳出循環(huán)
D.for循環(huán)的循環(huán)體可以包含多條語句,但必須用花括號(hào)
括起來
33.不正確的定義語句是()。
A.doubIex[5]={2.0,4.0,6.0,8.0,10.0);
B.inty[5]={0,1,3,5,7,9);
C.charc1[]={'1'2'3'4'5'};
D.charc2[]={,x10'JxOa','x08,);
34.下面是對s的初始化,其中不正確的是()。
A.chars[5]={aabcw);
B.chars[5]={,a'b',,c'};
C.chars[5]="”;
D.chars[5]=wabced”;
35.下面程序段的運(yùn)行結(jié)果是()。
charc[5]={匕','b'c'
printf("%s",c);
A.'a,'b,
B.ab
C.abc
D.abc
36.以下說法中正確的是()o
A.C語言程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行
B.在C語言程序中,要調(diào)用的函數(shù)必須在main函數(shù)中定義
C.C語言程序總是從main函數(shù)開始執(zhí)行
D.C語言程序中的main函數(shù)必須放在槎序的開始部分
37.下列常量中,合法的C常量是()。
A.“x-y”
B.'105,
C.'Be,
D.07ff
38.下面程序的輸出結(jié)果是()。
voidmain
t
inti=011,j=11;
printf(a%d,%d",++i,j―);
)
A.10,11
B.12,10
C.11,11
D.10,9
39.下面程序的執(zhí)行結(jié)果為()。
voidmain()
{intx=20,y;
y=++x;y+=x;
printf(w%d,"y);
y=x——;y+=x;
printf(w%d,"y);
}
A.42,41
B.42,42
C.40,41
D.42,40
40.下面程序的輸出結(jié)果是()。
voidmain()
{inti=010,j=10;
printf("%d,%d”,i++,++j);
}
A.10,11
B.11,11
C.8,11
D.8,10
41.能正確表示a和b同時(shí)為正或同時(shí)為負(fù)的表達(dá)式是
()O
A.(a>=0||b>=0)&&(a<0||b<0)
B.(a>=0||b>=0)&&(a<0&&b<0)
C.(a+b>0)&&(a+|b<0)
D.a*b>0
42.以下關(guān)于運(yùn)算符優(yōu)先順序的描述中正確的是()。
A.關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符<邏輯運(yùn)算符
B.邏輯運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符
C.賦值運(yùn)算符<邏輯運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符
D.算術(shù)運(yùn)算符<關(guān)系運(yùn)算符<賦值運(yùn)算符<邏輯運(yùn)算符
43.下面程序的運(yùn)行結(jié)果是()。
voidmain()
{inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(a%d,%dw,a,b);
}
A.6,1
B.2,1
C.6,0
D.2,0
44.若有條件表達(dá)式(exp)?a++:b--,則以下表達(dá)式中完全等
價(jià)于表達(dá)式(exp)的是()。
A.(exp==0)
B.(exp!=0)
C.(exp==1)
D.(exp!=1)
45.程序段如下,則正確的執(zhí)行結(jié)果是()。
intk=0;
while(k++<=2);
printf(w%d”,k);
A.2
B.3
0.4
D.無結(jié)果
46.下面說法中正確的是()。
A.在C語言函數(shù)中,必須有形參
B.在C語言函數(shù)中,形參必須是變量名
C.在C語言函數(shù)中,可以有也可以沒有形參
D.在C語言函數(shù)中,數(shù)組名不能做形參
47.下面說法正確的是,在C語言中()O
A.實(shí)參和與其對應(yīng)的形參各占用獨(dú)立的存儲(chǔ)單元
B.實(shí)參和與其對應(yīng)的形參共占用一個(gè)存儲(chǔ)單元
C.只有當(dāng)實(shí)參和與其對應(yīng)的形參同名時(shí)才共占用存儲(chǔ)單元
D.形參是虛擬的,不占用存儲(chǔ)單元
48.下面不正確的說法是:C語言規(guī)定()。
A.實(shí)參可以是常量、變量或表達(dá)式
B.形參可以是常量、變量或表達(dá)式
C.實(shí)參傳遞給形參時(shí),要求實(shí)參必須有確定的值
D.形參應(yīng)與其對應(yīng)的實(shí)參類型可以不一致
49.C語言允許函數(shù)值類型缺省定義,此時(shí)函數(shù)值隱含的類
型是()。
A.float型
B.int型
C.Iong型
D.double型
50.若有以下定義:chars[10]="include*p=s;,則不
能代表字符'u'的表達(dá)式為()。
A.s[4]
B.s+4
C.*(p+4)
D.p+=4,*p;
51.C語言規(guī)定,簡單變量做實(shí)參時(shí),它和對應(yīng)形參之間的
數(shù)據(jù)傳遞方式是()。
A.地址傳遞
B.單向值傳遞
C.由實(shí)參傳給形參,再由形參傳給實(shí)參
D.由用戶指定傳遞方式
52.C語言規(guī)定,函數(shù)返回值的類型是由()。
A.return語句中的表達(dá)式類型所決定
B.調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型所決定
C.調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定
D.在定義該函數(shù)時(shí)所指定的函數(shù)類型所決定
53.若有int*p,a[10];p=a;,則下列寫法不正確的是
()O
A.p=a+2
B.a++
C.*(a+1)
D.p++
54.若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是
()0
A.數(shù)組的首地址
B.數(shù)組第一個(gè)元素的值
C.數(shù)組中全部元素的值
D.數(shù)組元素的個(gè)數(shù)
55.若使用以為數(shù)組名作函數(shù)實(shí)參,則下面說法中正確的是
()0
A.在被調(diào)函數(shù)中,與該實(shí)參相對應(yīng)的形參必須是同類型的
數(shù)組名或指針變量
B.實(shí)參數(shù)組類型與形參數(shù)組類型可以不四配
C.在被調(diào)函數(shù)中,不需要考慮形參數(shù)組的大小
D.實(shí)參數(shù)組名與形參數(shù)組名必須一致
56.設(shè)p1、p2是指向同一個(gè)字符串的指針變量,c為字符
變量,則不能正確執(zhí)行的賦值語句為()。
A.c=*p1+*p2;
B.p2=c;
C.p1=p2;
D.c=(*p1)*(*p2);
57.若有一下結(jié)構(gòu)體定義,則正確的引用和定義是
()0
structexampIe{intx;inty;}v1;
A.example.x=10
B.exampIev2;v2.x=10;
C.structv2;v2.x=10;
D.structexampIev2={10,5};
58.說明一個(gè)結(jié)構(gòu)體變量時(shí),系統(tǒng)分配給它的內(nèi)存是
()0
A.各成員所需內(nèi)存量的總和
B.結(jié)構(gòu)體中第一個(gè)成員所需內(nèi)存量
C.成員中占內(nèi)存量最大者所需的容量
D.結(jié)構(gòu)體中最后一成員所需內(nèi)存量
59.在C語言中,文件由下面拿個(gè)組成()。
A.記錄
B.數(shù)據(jù)行
C.數(shù)據(jù)塊
D.字符(字節(jié))序列
60.下面程序段的運(yùn)行結(jié)果是()。
charc[]=wwi11”;
printf("%dstrlen(c));
A.14
B.3
0.9
D.字符串中有非法字符,輸出值不確定
61.以下敘述中不正確的是()。
A.在不同的函數(shù)中可以使用相同名字的變量
B.函數(shù)中的形式參數(shù)是局部變量
C.在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
D.在一個(gè)結(jié)函數(shù)內(nèi)的符合語句中定義的變量在本函數(shù)范圍
內(nèi)有效
62.一個(gè)變量的指針是指()O
A.該變量的值
B.該變量的地址
C.該變量的變量名
D.該變量的標(biāo)志
c語言練習(xí)試題庫3
一選擇題(7分,每小題0.5分)
1.C語言源程序的基本單位是()o
A過程B函數(shù)C子程序D標(biāo)識(shí)符
2.下列程序的輸出結(jié)果是()o
main()
{inta=7,b=5;
printf("%d",b=b/a);
}
A5B1C0D不確定值
3.假設(shè)變量a,b均為整型,表達(dá)式
(a=5,b=2,a>b?a++:b++,a+b)的值是()。
A7B8C9D2
4.設(shè)a為int型變量,執(zhí)行下列賦值語句后,a的取值分別
是()。
a=125.534;a=(int)125.521%4;a=5?2;
A125,31,1B125,1,20C125,31,20D125.534,2,20
5.設(shè)有如下程序段,下面描述中正確的是()。
intk=10;while(k=0)k=k-1;
A循環(huán)執(zhí)行一次B循環(huán)是無限循環(huán)C循環(huán)體語句一次也不
執(zhí)行D循環(huán)體語句執(zhí)行一次
6.以下程序的輸出結(jié)果為()o
inti;
voidprt()
{for(i=5;i<8;i++)printf("%c",
printfC");
}
main()
{for(i=5;i<=8;i++)prt();
}
***D***★*士★★蟲aaa*士*c***
ATTTO*I**I*T,1'?1,?I**I**T**T*TFT!■TTT11*T*TT
7.在C語言程序中,以下說法正確的是()o
A函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套
B函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套
C函數(shù)的定義和函數(shù)的調(diào)用都不可以嵌套
D函數(shù)的定義和函數(shù)的調(diào)用都可以嵌套
8.以下函數(shù)調(diào)用語句中含有()個(gè)實(shí)參。
func((e1,e2),(e3,e4,e5));
A2B3C5D語法錯(cuò)誤
9.以下程序的輸出結(jié)果為()o
#defineADD(x)x*x
main()
{inta=4,b=6,c=7,d=ADD(a+b)*c;
printf("d=%d",d);
}
Ad=70Bd=80Cd=140Dd=700
10.已知職工記錄描述如下,在Turbo0中,系統(tǒng)為變量w
分配()字節(jié)的空間。
structworker
{intno;
charname[20];
charsex;
union
{intday;intmonth;intyear;}birth;
}w;
A29B20C25D6
11.設(shè)有以下定義,值為5的枚舉常量是()。
enumweek{sun,mon=4,tue,wed,thu,fri,sat}w;
AtueBsatCfriDthu
12.下面選項(xiàng)中正確的賦值語句是(設(shè)char
a[5],*p=a;)()o
Ap="abcd";Ba="abcd";C*p="abcd";D*a="abcd";
13.設(shè)有以下程序段,則值為6的表達(dá)式是()。
structst{intn;structst*next;};
staticstructsta[3]={5,&a[1],7,&a[2],9,0},*p;
P=&a[O];
Ap++->nB++p->nCp->n++D(*p).n++
14.C語言中的文件類型只有()0
A索引文件和文本文件兩種B文本文件一種
C二進(jìn)制文件一種DASCII碼文件和二進(jìn)制文件兩種
二判斷對錯(cuò),對的劃“,錯(cuò)的劃“X”(5分,每小題
0.5分)
1.在TurboC中,整型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié)。()
2.inti=20;switch(i/10){case2:printf("A");case
1:printf("B");}的輸出結(jié)果為A。()
3.break語句用在循環(huán)體中,可結(jié)束本層循環(huán),continue
語句用在循環(huán)體中,可結(jié)束本次循環(huán)。()
4.函數(shù)的遞歸調(diào)用不過是一個(gè)函數(shù)直接或間接地調(diào)用它自
身。()
5.函數(shù)strlenC'ASDFG")的值是7。()
6.通過return語句,函數(shù)可以帶回一個(gè)或一個(gè)以上的返回
值。()
7.結(jié)構(gòu)體類型只有一種。()
8.char*p="girr';的含義是定義字符型指針變量p,p的值
是字符串"girl"。()
9.若有定義:char*p(chara[10]);則p是函數(shù)名。()
10.用fopen("fiIe","r+");打開的文件"fiIe"可以進(jìn)行修
改。()
三寫出下列程序的運(yùn)行結(jié)果(10分,每小題2分)
1.fIoataverage(fIoatarray[10])
{inti;
floataver,sum=array[0];
for(i=1;i<10;i++)
sum=sum+array[i];
aver=sum/10;
return(aver);
}
main()
{float
score[10]={89,67.5,78,91,56,82.5,65,70,79,88),aver;
inti;
aver=average(score);
printf("averagescoreis%5.2f”,aver);
)
2.main()
(chara[5]={(kf,<B,,,C',十',},*p=a,**pa;
for(p=0;p<a+5;p++)<p="">
printf(w%2cw,*p);
printf("”);
printf(w%2cn,**(pa=&p));
}
3.main()
{inta,b,s=0;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;continue;}
b-=5;
}
printf("a=%db=%dn,a,b);
}
4.main()
{printf("main():%d”,fact(5));
fact(-5);
}
fact(intvaIue)
{intf;
if(vaIue<0)
{printf(<fArgerror");
return(-1);
}
elseif(vaIue==11|value=0)f=1;
eIsef=vaIue*fact(vaIue-1)+1;
printf("ThiscalledvaIue=%dn,f);
returnf;
}
5.main()
{inta=012,b=0x12,k=12;
charc='102',d='';
printf("a=%db=%dk=%d”,a,b,k);
printf("c=%c,d=%c%o”,c,d,a);
a='A';c=49;
printf("a=%dc=%c”,a,c);
)
四閱讀下列程序,在處填入適當(dāng)內(nèi)容,使程序完整(8分,
每個(gè)空1分)
1.有一個(gè)3*4矩陣,求其中的最大元素。
max_value((1))
{inti,j,max;
max=array[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(array[i][j]>max)
max=array[i][j];
⑵;
}
main()
{inta[3][4],i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
(3);
printf("maxvalueis%d”,max_vaIue(a));
}
2.輸入x、y兩個(gè)整數(shù),按先大后小的順序輸出x、V。
#include“stdio.h”
main()
{intx,y,*px,*py,(4);
scanf("%d%d”,&x,&y);
⑸;⑹;
if(x<y)<p="">
P=px;px=py;py=p;}
printf(“x=%d,y=%d”,x,y);
printf(“MAX=%d,MIN=%dw,*px,*py);
}
3.用選擇排序法對任意10個(gè)整數(shù)按照由小到大排序。
main()
{inta[11],i,j,k,t;
printf("Pleaseinput10numbers:");
for(i=1;i<11;i++)scanf("%d",&a[i]);
printfC");
for(i=1;i<=9;i++)
{(7);
for(j=i+1;(8);j++)
if(a[j]>a[k])k=j;
if(k!=i)
tt=a[k];a[k]=a[i];a[i]=t;}
}
printf("Thesortednumbers:");
for(i=1;i<11;i++)printf("%d",a[i]);
)
答案
一選擇題(7分,每小題0.5分)
1.B2.C3.B4.B5.C
6.A7.B8.A9.A10.C
11.A12.A13.B14.D
二判斷對錯(cuò),對的劃“J”,錯(cuò)的劃“X”(5分,每小題
0.5分)
1.X2.X3.V4.V5.X
6.X7.X8.X9.V10.V
三寫出下列程序的運(yùn)行結(jié)果(10分,每小題2分)
1.2.3.
4.5.
四閱讀下列程序,在處填入適當(dāng)內(nèi)容,使程序完整(8分,
每個(gè)空1分)
1.(1)intarray[3][4](intarray[][4])(2)return(max)
(3)scanf(,&a[i][j])
2.(4)*p(5)px=&x(py=&y)(6)py=&y(px=&x)
3.(7)(8)
2003C語言試題3
一選擇題(24分,每小題2分)
1.已知函數(shù)fread的調(diào)用形式為fread(buffer,size,
count,fp),其中buffer代表的是()。
A存放讀入數(shù)據(jù)項(xiàng)的存儲(chǔ)區(qū)B存放讀入數(shù)據(jù)的地址或指向
此地址的指針
C一個(gè)指向所讀文件的文件指針D一個(gè)整形變量,代表要
讀入的數(shù)據(jù)項(xiàng)總數(shù)
2.以下程序的輸出結(jié)果為()o
main()
{inti=010,j=10;
printf("%d,%d",i++,j—);
}
A11,9B9,10C8,10D9,9
3.設(shè)a為int型變量,執(zhí)行下列賦值語句后,a的取值分別
是()oa=125.534;a=20.0/3;a=(int)125.521%4;a=5?2;
A125,6,31,1B125,6,1,20C125,6.666666,31,20D
125,534,6.666666,2,20
4.設(shè)i和k都是int類型,則for循環(huán)語句()。
for(i=0,k=-1;k=1;i++,k++)printf("****");
A循環(huán)結(jié)束的條件不合法B循環(huán)體一次也不執(zhí)行0循環(huán)
體只執(zhí)行一次D是無限循環(huán)
5.以下程序的輸出結(jié)果為()o
main()
{charc;
inti;
for(i=65;i<68;i++)
{c=i+32;
switch(c)
{case'a':case1b':case'c':printf("%c,",c);break;
defau11:printf("end");)
}
}
Aa,b,c,endBa,a,a,endCa,a,a,Da,b,c,
6.函數(shù)調(diào)用語句:fseek(fp,-10L,2);的含義是()。
A將文件位置指針從文件末尾處向文件頭的方向移動(dòng)10個(gè)
字節(jié)
B將文件位置指針從當(dāng)前位置向文件頭的方向移動(dòng)10個(gè)字
節(jié)
C將文件位置指針從當(dāng)前位置向文件末尾方向移動(dòng)10個(gè)字
節(jié)
D將文件位置指針移到距離文件頭10個(gè)字節(jié)處
7.以下程序的輸出結(jié)果為()o
main()
{chars1[40]="country",s2[20]="side";
inti=0,j=0;
while(s1[i]!='\0')i++;
whiIe(s2[j]!='\0')s1[i++]=s2[j++];
s1[i]=0;
printf("%s",s1);
}
AsideBcountry0sidetryDcountryside
8.下列說法不正確的是()o
A主函數(shù)main中定義的變量在整個(gè)文件或程序中有效
B不同函數(shù)中,可以使用相同名字的變量
C形式參數(shù)是局部變量
D在一個(gè)函數(shù)內(nèi)部,可以在復(fù)合語句中定義變量,這些變量
只在本復(fù)合語句中有效
9.在下列程序段中,枚舉變量5的.值是()。
enumcolor{red,yeIIow,bIue=4,green,white}c1;
c1=yellow;c1=white;
A1B3C5D6
10.設(shè)有說明int(*ptr)();其中標(biāo)識(shí)符ptr是()。
A是一個(gè)指向整形變量的指針B是一個(gè)指針,它指向一個(gè)
函數(shù)值是int的函數(shù)
0是一個(gè)函數(shù)名D定義不合法
11.定義由n個(gè)指向整形數(shù)據(jù)的指針組成的數(shù)組p,其正確的
方式為()o
Aintp;Bint(*p)[n];Cint*p[n];Dint(*p)();
12.具有相同類型的指針類型變量p與數(shù)組a,不能進(jìn)行的操
作是()o
Ap=a;B*p=a[0];Cp=&a[0];Dp=&a;
二判斷對錯(cuò),對的劃“,”,錯(cuò)的劃“X”(20分,每小
題2分)
1.參加位運(yùn)算的數(shù)據(jù)可以是任何類型的數(shù)據(jù)。()
2.若有定義和語句:inta;charc;fIoat
f;scanf("%d,%c,%f",&a,&c,&f);若通過鍵盤輸入:10,A,12.5,
則a=10,c=,f=12.5o()
3.C語言把文件看作是一個(gè)字符(字節(jié))的序列。()
4.若有宏定義:#defineS(a,b)t=a;a=b;b=t由于變量t
沒定義,所以此宏定義是錯(cuò)誤的。()
5.在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年浙教版選擇性必修1語文上冊月考試卷含答案
- 2025年度綠色生態(tài)公園內(nèi)外裝修與景觀設(shè)計(jì)合同4篇
- 個(gè)性化教育服務(wù)合同2024年版版B版
- 二零二五版農(nóng)產(chǎn)品加工企業(yè)原料供應(yīng)合同4篇
- 二零二五年度出租車行業(yè)信息化建設(shè)合同12篇
- 二零二五年度出租車經(jīng)營權(quán)轉(zhuǎn)讓與市場拓展合同3篇
- 二零二五出租車行業(yè)股權(quán)投資與業(yè)務(wù)整合合同3篇
- 2025年度露天采礦安全生產(chǎn)責(zé)任承包合同3篇
- 2025年度智慧城市承攬工程合同范本4篇
- 2025年度高新技術(shù)研發(fā)中心員工知識(shí)產(chǎn)權(quán)保護(hù)勞動(dòng)合同
- 消防產(chǎn)品目錄(2025年修訂本)
- 地方性分異規(guī)律下的植被演替課件高三地理二輪專題復(fù)習(xí)
- 光伏項(xiàng)目風(fēng)險(xiǎn)控制與安全方案
- 9.2提高防護(hù)能力教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)上冊
- 催收培訓(xùn)制度
- ISO 22003-1:2022《食品安全-第 1 部分:食品安全管理體系 審核與認(rèn)證機(jī)構(gòu)要求》中文版(機(jī)翻)
- 2024年廣東省高考地理真題(解析版)
- 2024高考物理廣東卷押題模擬含解析
- 人教版五年級(jí)上冊數(shù)學(xué)簡便計(jì)算大全600題及答案
- GB/T 15945-1995電能質(zhì)量電力系統(tǒng)頻率允許偏差
- GB 32311-2015水電解制氫系統(tǒng)能效限定值及能效等級(jí)
評論
0/150
提交評論