




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
計算機(jī)C語言期末(一)
(總分150分,考試時長120分鈍)
一、單項選擇題(每小題2分,共40分)
1、與二進(jìn)制小數(shù)0.1等值的十六進(jìn)制小數(shù)為o
A、0.1
B、0.2
C、0.4
D、0.8
2、假設(shè)int類型的變量x、y和z,它們的初始值分別為10、20和30,則布爾表
達(dá)式xV10IIy>10&&z<10的值為o
A、false
B、1
C、true
D、無法判斷
3、有如下說明:inta[10]={0,1,2,3,4,5,6,7,8,9};則數(shù)值不為9的
表達(dá)式是.
A、a[10-l]
B、a[8]
C、a[9]-0
D、a[9]-a[0]
4、c語言對嵌套if語句的規(guī)定是:else總是與()。
A、其之前最近的述配對
B、其之前最近的且尚未配對的if配對
C、縮進(jìn)位置相同的if配對
D、第一個if配對
5、下列c語言程序段中關(guān)于while循環(huán)體正確的說法是
inti=l;
while(b)
(
i++;
if(i>3)break;
}
A、三次循環(huán)
B、四次循環(huán)
C、五次循環(huán)
D、六次循環(huán)
6、若執(zhí)行fopen函數(shù)時發(fā)生錯誤,則函數(shù)的返回值是()。
A、地址值
B、0
C、1
D、EOF
7、若變量已正確說明為float型,要通過語句scanf(〃%f%f%f〃,&a,&b,&c);給
a賦予10,0,b賦予22.0,u賦予33.0,下列不正確的輸入形式是_______。
A、10V回車>22〈回車>33V回車》
B、10.0,22.0,33.0V回車)
C、10.0V回車>22.033.0V回車,
D、1022V回車>33V回車〉
8、有以下程序
main()
(
chars[]="\nl23\\";
printf(z,%d,%d\n”,strlen(s),sizeof(s));
)
執(zhí)行后輸出結(jié)果是O
A、賦初值的字符串有錯
B、6,7
C、5,6
D、6,6
9、在c語言中,數(shù)字029是一個()
A、八進(jìn)制數(shù)
B、十進(jìn)制數(shù)
C、十六進(jìn)制數(shù)
D、非法數(shù)
10、設(shè)char*s二〃\ta\017bc〃;
則指針變量S指向的字符串所占的字節(jié)數(shù)是O
A、9
B、5
C、6
D、7
11、下列對C語言字符數(shù)組的描述中正確的是O
A、任何一個一維數(shù)組的元素在引用時,其下標(biāo)可以是整型、實型或字符型
常量
B、一維數(shù)組的元素實質(zhì)上就是一個變量,代表內(nèi)存中的一個存儲單元
C、如果要引用數(shù)組中的每一個元素,則直接使用該數(shù)組名稱即使
D、以上都不對
12、有以下程序:
intf(intn)
(
if(n-1)return1;
elsereturnf(n-l)+l;
)
main()
(
inti,j=0;
for(i=l;i<3;i+-)j+=f(i);
printf(,,%d\n,\j;;
)
程序運(yùn)行后的輸出結(jié)果是________。
A、4
B、3
C、2
D、1
13、下列運(yùn)算符中,不屬于關(guān)系運(yùn)算符的是o
A、+二
B、!=
C、<=
D、=
14、若有以下的定義:intt[3][2];
能正確表示t數(shù)組元素地址的表達(dá)式是。
A、&t[3][2]
B、t[3]
C、&i[l]
D、t[2]
15、執(zhí)行下列語句后,a和b的值分別為()。
inta,b;
a=l+'a';
b=2+7%-4-'A';
A、-63,-64
B、98,-60
C、1,-60
D、79,78
16、設(shè)n為整型變量,則循環(huán)語句for(n=10;n>0;n-)的循環(huán)次數(shù)為
A、10
B、9
C、11
D、12
17、設(shè)有結(jié)構(gòu)體的定義如下:
structdata
(
charcl;
charc2;
)
f
則sizeof(structdata)的值是。
A、2
B、3
C、4
D、5
18、下述程序的運(yùn)行結(jié)果是o
#include<stdio.h>
voidfun(intx)
(
putchar('O'+(x%10));
fun(x/10);
)
main()
(
printf(''\n'');
fun(1234);
)
A、4321
B、321
C、21
D、1
19、設(shè)charstr[100];inti=5;則引用數(shù)組元素的錯誤形式的是_____
A、str[I+10]
B、*(srr+
C^(str+I-1)
D、*(&(str++)+
20、下面程序的輸出是o
main()
(
structcmplx
(
intx;
inty;
)
cnum[2]={l,3,2,7};
printf(〃%d\n〃,cnum[0].y/cnum[0].x*cnum[l].x);
)
A、0
B、1
C、3
D、6
二、判斷題(每小題2分,共20分)
()1、變量被定義后,它的作用域和壽命就被確定了,并且不可?改變。
()2、c語言中非標(biāo)準(zhǔn)輸入輸出設(shè)備指的是鍵盤和顯示器。
()3、if語句不可以嵌套使用。
()4、while語句和do-while語句的一般形式分別如下,其主要區(qū)別
是:while語句先判斷循環(huán)條件,只有條件滿足才進(jìn)入循環(huán),如果一開始條件就不
滿足,則循環(huán)一次都不執(zhí)行。而do-while語句先執(zhí)行循環(huán)體,后判斷循環(huán)條
件,所以無論循環(huán)條件的值如何,至少會執(zhí)行一次循環(huán)體。
()5、c語言約定''0'計入字符串的長度。
()6、要使用標(biāo)準(zhǔn)輸入、輸出函數(shù),正常情況下應(yīng)該在文件的開頭加上以下內(nèi)
容:
^include<stdio.h>
或
ttincludc^stdio.h"。
()7、數(shù)組名作為函數(shù)參數(shù),傳送的是地址.
()8、函數(shù)一次可以返回兩個以上的值。
()9、fseck函數(shù)一般用于文本文件。
()10、非靜態(tài)全局變量的作用域可以擴(kuò)展到構(gòu)成該程序的其他源程序文件
中。
三、填空題(每小題4分,共20分)
1、全局的外部變量與函數(shù)體內(nèi)定義的局部變量同名時,在函數(shù)體內(nèi),________變
量起作用。
2、若有定義:inta[3][4]={{1,2},{0},{4,6,8,10}};
則初始化后,的值為________,a[2][1]得到的值為。
3、下列程序段的運(yùn)行結(jié)果是____o
main()
(
inti=l,s=0;
for(;;)
(
s=s+i;
i++;
if(i>4)break;
)
printf(級d\n〃,s);
)
4、將arr傳參到子函數(shù),接受處()內(nèi)函數(shù)定義該怎么寫?
5、有一輸入函數(shù)scanf(〃姒l〃,k);
則不能使用float變量k得到正確數(shù)值的原因是和o
scanf語句的正確形式應(yīng)該是:o
四、程序分析題(每小題5分,共20分)
1、下面程序的運(yùn)行結(jié)果是o
#include<stdio.h>
main()
inty=2,a=l;
while(y-!=~1)
(
do
(
a+-y;
a++;
)
while(y-);
)
printf(飛d,%d〃,a,y);
)
2、下面函數(shù)func的功能是o
#include<math.h>
longfunc(longnum)
(
longk=l;
num=labs(num);
do
(
k*=num%10;
num/=10;
}
while(num);
returnk;
)
main()
(
longn;
printf(z,\npleaseenteranumber:;
scanf&n);
printf(z,\ntheproductofitsdigitsis%ld./z,func(n));
}
3、已知"floatx=0.5;inty=8;〃,則算術(shù)表達(dá)式"(int)(x+y/5)〃的值是
4、^include<stdio.h>
ttinclude<string.h>
voidmain()
(
chara[10]={'a','b','c','d',''0','f','g','h',''0'};
inti,j;
i=sizeof(a);
J-sLrlen(a);
printf("%d,%d\n”,i,j);
)
五、編程題(每小題分,共50分)
1、輸入3個學(xué)生4門課的成績{(60,70,65,75),
(75,80,75,90),(95,75,90,65)},計算每個學(xué)生的總分和平均成績并輸出,結(jié)果
保留一位小數(shù)。(本題12分)
2、編寫程序:利用遞歸函數(shù)調(diào)用方式,將所輸入的5個字符,以相反順序打印
出來。(本題18分)
3、若有以下銀行卡信息:
structcard{
intid;〃銀行卡號
intbonus;〃金額
};
請編寫程序,從鍵盤輸入5條銀行卡記錄,使用結(jié)構(gòu)體數(shù)組存
儲這些數(shù)據(jù),并按金額升序排序,輸出排序后的結(jié)果。
【輸入形式】5條銀行卡記錄分行輸入,每行數(shù)據(jù)用空格間隔
【輸出形式】分5行輸出數(shù)據(jù),每行數(shù)據(jù)均使用空格間隔
【輸入樣例】
100120
100280
100350
100410
100640
【輸出樣例】
100410
100120
100640
100350
100280(本題20分)
參考答案
一、單項選擇題
1、D
【解析】此題屬于綜合題。首先,把二進(jìn)制小數(shù)0.1轉(zhuǎn)化成十進(jìn)制小數(shù):
(0.1)2=1X2-l=(0.5)10;然后把十進(jìn)制小數(shù)0.5轉(zhuǎn)化成十六進(jìn)制小數(shù):
0.5X16=8,而整數(shù)部分為0,所以(0.1)2=(0.5)10=(0.8)16
2、A
3、B
4、B
5、A
6、B
7、B
【解析】在C語言中,當(dāng)一次輸入多個數(shù)據(jù)的時候,數(shù)據(jù)之間要用間隔符,合
法的間隔符可以是空格、制表符和回年符。逗號不是合法的間隔符。
8、C
【解析】本題在定義字符數(shù)組時沒有定義數(shù)組長度,但是給數(shù)組賦了初值,這
時初值的個數(shù)即為數(shù)組的長度,故數(shù)組長度為6(包括'\0')。字符串的長度為
有效字符的個數(shù)5。因此printf語句中輸出的結(jié)果為5,6。
9、D
10、C
11、B
【解析】本題考查了字符數(shù)組的基本概念。選項A,因為數(shù)組元素的下標(biāo)只能
為整數(shù),所以選項A錯誤。選項C,引用數(shù)組中的元素,可以通過數(shù)組名和下
標(biāo)的方式來引用,只使用數(shù)組名不可以。
12、B
【解析】第一次調(diào)用f()函數(shù),返回值為1,第二次調(diào)用f()函數(shù),牽涉到函
數(shù)的遞歸調(diào)用,返回值為2。
13、A
【解析】+二是算術(shù)賦值運(yùn)算符。
14、D
15、B
16、A
17、A
18、A
19、D
20、D
二、判斷題
1、正確
2、錯誤
3、錯誤
4、正確
5、錯誤
6、正確
7、正確
8、錯誤
9、錯誤
10、正確
三、填空題
1、函數(shù)體內(nèi)定義的局部
2、「0','6']
3、10
4、int*arr
5、未指明變量k的地址,格式控制符與變量類型不匹配,scanf(〃%f〃,&k);
O
四、程序分析題
1、1,-2
2、計算一個數(shù)的各位數(shù)字之積。
3、1
4、10,4
【解析】sizeof運(yùn)算符判斷數(shù)據(jù)類型所占內(nèi)存字節(jié)大小,故i=10,該數(shù)組匕
10個字節(jié)的內(nèi)存;strlen函數(shù)則判斷字符串實際長度,不包含“\0”,該函數(shù)
遇到“\0”就會返回,故數(shù)組a的長度為4,即只計算了abed這四個字符。
五、編程題
1、^include
voidmain()
(
inta[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65)};
inii,j;
floataverage,sum=0.0;
printf("三個學(xué)生的總分和平均成績依次為:\n〃);
for(i=0;i<3;i++)
sum=0.0;
for(j=0;j<4;j++)
sum=sum+a[i][j];
average=sum/4;
printf("%.2f,%.2f\n〃,sum,average);
}
)
2、^include<stdio.h>
intmain()
(
inti=5;
voidpalin(intn);
printf(〃請輸入5個字符\40:\40〃);
palin(i);
printf(〃\n〃);
)
voidpalin(n)
intn;
(
charnext;
if(n<=l){
next=getchar();
printf(〃相反順序輸出結(jié)果\40:\40〃);
putchar(next);
1else{
next=getchar();
palin(n-1);
putchar(next);
}
)
3、Sinclude<stdio.h>
ttinclude<stcllib.h>
structcard
(
intid;〃銀行卡號
intbonus;〃金額
}a[5],tamp;
intmain()
inti,j;
for(i=0;i<5;i++)
scanf(〃%d%d”,&a[i].id,&a[i].bonus);
for(i=1;i<5;i++)
(
for(j=0;j<5-i;j++)
(
if(a[j].bonus>a[j+l].bonus)
(
tamp=a[j];
a[j]=a[j+l];
a[j-l]=tamp;
)
for(j=0;j<5;j++)
printf(z,%d%d\n,\a[j].id,a[j].bonus);
)
}
計算機(jī)C語言期末(二)
(總分150分,考試時長120分鐘)
一、單項選擇題(每小題2分,共40分)
1、一個字長為8位的無符號二進(jìn)制整數(shù)能表示的十進(jìn)制數(shù)值范圍是______
A、0-256
B、0-255
C、1-256
D、1-255
2、下列數(shù)據(jù)中,為字符串常量的是()。
A、A
B、“house”
C、Howdoyoudo.
D、$abc
3、設(shè)有條件表達(dá)式::EXP)i++;j-,則以下表達(dá)式中(EXP)完全等價的是
A、(EXP=0)
B、(EXP!=0)
C、(EXP=1)
D、(EXP!=1)
4、若inti=10;
執(zhí)行下列程序后,變量i的正確結(jié)果是
switch(i)
(
case0:i+=l;
case10:i+=l;
case11:i+=l;
default:i+=l;
)
A、10
B、11
C、12
D、13
5、若有以下程序
#include<stdio.h>
main(){
inta=6,b=0,c=0;
for(;a;){
b+二a;
a-=++c;
)
printf(〃%d,%d,%d\n,/,a,b,c);
)
則程序的輸出結(jié)果是______。
A、0,14,3
B、1,14,3
C、0,18,3
D、0,14,6
6、以下敘述中正確的是o
A、在C程序中無論是整數(shù)還是實數(shù),只要在允許的范圍內(nèi)都能準(zhǔn)確無誤地
表示
B、C程序由主函數(shù)組成
C、C程序由若干函數(shù)組成
D、C程序中只允許包含一個函數(shù)
7、假設(shè)i和j是整型變量,以下語句()的功能是在屏幕上顯示形如i*j二
i*j的一句乘法口訣。例如,當(dāng)i=2,j=3時,顯示2*3=6。
A^printf(〃d*%d=%d\n”,i,j,i*j);
B、printf(z,%d*刎=%d\n〃,i,j,i*j);
C、printf(z,%d*%d=%d\n,z,i,j):
D、printf(〃%d=%d*%d\n〃,i,j,i*j);
8、下列數(shù)組說明中,正確的是o
A、intarray[][4];
B、intarray[][];
C、intarray[][][5];
D、intarray[3][];
9、下列各進(jìn)制的整數(shù)中,值最大的一個是o
A、T六進(jìn)制數(shù)78
B、十進(jìn)制數(shù)125
C、八進(jìn)制數(shù)202
D、二進(jìn)制數(shù)10010110
10、在下列各項中,運(yùn)算級別最低的為。
A、算術(shù)運(yùn)算符
B、關(guān)系運(yùn)算符
C、邏輯運(yùn)算符
D、圓括號()
11>下列描述中,正確的一條是。
A、關(guān)系表達(dá)式的值是一個邏輯值,即“真”或“假”,可以賦給一個邏輯
變量
B、在C語言中,判斷一個量是否為:真”時,以0代表“假”,以1代表
“真”.
C、設(shè)a=3、b=4、c=5,則表達(dá)式?。▁;&&(y二&&0的值為0
D、一個數(shù)組的各人數(shù)組元素可屬于不同的數(shù)據(jù)類型
12、關(guān)于c語言的符號常量,以下敘述中正確的是o
A、符號常量的符號名是標(biāo)識符,但必須大寫
B、符號常量是指在程序中通過宏定義用一個符號名來代表一個常量
C、符號常量在整人程序中其值不能再被重新定義
D、符號常量的符號名必須是常量
13、char型常量在內(nèi)存中存放的是_______o
A、二進(jìn)制代碼值
B、十進(jìn)制代碼值
C、十六進(jìn)制代碼值
D、ASCII代碼值
14、以下敘述正確的是o
A、C程序總是以main。作為程序執(zhí)行的起始行
B、mainO函數(shù)若天帶參數(shù),其后面的一對圓括號可省略
C、函數(shù)體內(nèi)的定義語句和可執(zhí)行語句允許任意交替出現(xiàn)
D、C語言中的語句之間必須用分號作為分隔符
15、設(shè)有如下程序段:
union
(
inti;
charc;
}a;
a.i=12;
a.c-'a';
printf(z/\n%d/z,a.i);
這段程序執(zhí)行后,屏幕輸出的結(jié)果是..............................()
A、12
B、97
C、65
D、A
16、下列for循環(huán)的次數(shù)為—
for(inti=0,x=0;!x&&iV=5;i++)
A、5
B、6
C、1
D、無限
17、下面結(jié)構(gòu)體的定義語句中,錯誤的是—
A、structord{
intx;inty;intz;};structorda;
B、structord(
intx;inty;intz;}structorda;
C^structord(
intx;inty;intz;}n;
Dsstruct(
intx;inty;intz;}a;
18、以下程序段的輸出結(jié)果是()。
char*alp□={"ABC",'"DEF〃,〃GHI〃};intj;puts(alp[l]);
A、A
B、B
C、D
D、DEF
19、下列關(guān)于c語言字符數(shù)組描述正確的是。
A、字符數(shù)組可以存放字符串
B、字符數(shù)組的下標(biāo)是從0開始的
C、字符數(shù)組不能輸出字符串
D、字符數(shù)組可以沒有‘'0'
20、在c語言中,系統(tǒng)為一個結(jié)構(gòu)體變量分配的內(nèi)存是
A、各成員所需內(nèi)存量的總和
B、結(jié)構(gòu)體第一個成員所需的內(nèi)存量
C、成員中占內(nèi)存量最大者所需的容量的整數(shù)倍
D、結(jié)構(gòu)體中最后一個成員所需的內(nèi)存量
二、判斷題(每小題2分,共20分)
()1、當(dāng)函數(shù)的實參與形參同名時,它們將共占內(nèi)存單元。()
()2、一個c程序要經(jīng)過編譯鏈接才能執(zhí)行。
()3、switch語句中的default必須出現(xiàn)在所有case之后。
()4、循環(huán)語句中如果包含若干條語句,則必須用大括號括起來
()5、比較兩個字符串是否相等不能通過條件運(yùn)算符〃二二〃。
()6、可以在一個函數(shù)中定義另一個函數(shù)。
()7、在用數(shù)組名作為函數(shù)實參時,傳遞的是數(shù)組的起始地址,所以就不允許
使用形參數(shù)組的形式
()8、c語言函數(shù)返回類型的默認(rèn)定義類型是
void。
()9、函數(shù)形參的存儲單元是動態(tài)分配的。
()10、若不希望其他源文件引用本文件中定義的全局變量,可在定義全局變
量時加上sbaLico
三、填空題(每小題4分,共20分)
1、循環(huán)語句for(i=0;iV3;i++)printf(〃*");
表達(dá)式i=0執(zhí)行【1】次,表達(dá)式i++執(zhí)行[2]________次。
2、有intx=3,y=-4,z=5;
則表達(dá)式(x&&y)=(x|z)的值為________。
3、結(jié)構(gòu)化設(shè)計中的三種基本結(jié)構(gòu)是順序,選擇,_____o
4、若變量a,b已定義為int類型并賦值21和55,要求用printf函數(shù)以
a=21,b=55的形式輸出,請寫出完整的的輸出語句。
5、c語言中對文件讀寫之前必須先打開文件,文件的打開是通過調(diào)用_______
函數(shù)來實現(xiàn)。
四、程序分析題(每小題5分,共20分)
1、有以下程序
ttinclude<string.h>
main()
chara□={'a','b','c','d','e','f',''0');
intj;
j=strlen(a);
printf("%d\n",j);
)
程序運(yùn)行后的輸出結(jié)果是O
2、以下程序的輸出結(jié)果是_____________。
main()
(
inta;
printf("%d\n〃,(a=3*4,a*5,a+5));
}
3、下面程序段的運(yùn)行結(jié)果是o
i=l:
a=0;
s=l;
do
(
a=a+s*i;
s=-s;
i++;
)
while(i<=10);
printf(〃a=%d”,a);
4、程序運(yùn)行結(jié)果是o
voidswap(inta[2])
(
intt;
l-a[0];
a[0]=a[l];
}
voidmain0
(
intx[2]={5,8};
swap(x);
printf(z,x[O]=%d,x[l]=%d\n,,,x[0],x[l]);
}
五、編程題(每小題分,共50分)
1、編寫程序:計算1到100之間的奇數(shù)之和及偶數(shù)之和(本題12分)
2、編寫程序:從鍵盤上輸入一個數(shù)字組成的字符串(字符串長度小于8),將該
字符串轉(zhuǎn)換成一個十進(jìn)制數(shù)
例如:從鍵盤上輸入2345,則程序運(yùn)行的結(jié)果應(yīng)當(dāng)為:產(chǎn)2345()(本題18分)
3、計算n名學(xué)生成績的平均分并通過函數(shù)返回。要求:
結(jié)構(gòu)體代碼如下:
structStudentScore(
doublescore;
);(本題20分)
參考答案
一、單項選擇題
1、B
【解析】無符號數(shù),即自然數(shù)。8位無符號的二進(jìn)制數(shù)的范圍是00000000?
11111111,轉(zhuǎn)換成十進(jìn)制就是0?255。
2、B
3、B
【解析】條件表達(dá)式的形式為:“表達(dá)式1表達(dá)式2:表達(dá)式3”o其含義為:
當(dāng)“表達(dá)式1”的值為非零時,求出“表達(dá)式2”的值,此時“表達(dá)式2”的值
就是整個條件表達(dá)式的值;當(dāng)“表達(dá)式1”的值為零時,求出“表達(dá)式3”的
值,此時“表達(dá)式3”的值就是整個條件表達(dá)式的值。對于本題來說,當(dāng)表達(dá)
式EXP為非0值時條件成立,即執(zhí)行語句i++;當(dāng)EXP等于0時,執(zhí)行語句卜
這等同于條件表達(dá)式“(EXP!=0)i++:i++;”
4、D
5、A
【解析】循環(huán)執(zhí)行3次,使a為0,循環(huán)結(jié)束,最終abc分別為0143,所
以選擇A。
6、C
7、B
8、A
9、D
【解析】不同進(jìn)制數(shù)之間的比較,必須統(tǒng)一轉(zhuǎn)換成同一進(jìn)制的數(shù)。一般,轉(zhuǎn)換
成十進(jìn)制數(shù)比較方便。十六進(jìn)制數(shù)78轉(zhuǎn)換成十進(jìn)制數(shù)是120;二進(jìn)制數(shù)
10010110轉(zhuǎn)換成十進(jìn)制數(shù)是150;八進(jìn)制數(shù)202轉(zhuǎn)換成十進(jìn)制數(shù)是130o
10、C
【解析】如果在同一個表達(dá)式中出現(xiàn)不同的運(yùn)算符,其優(yōu)先順序為:先執(zhí)行算
術(shù)運(yùn)算、字符串運(yùn)算和日期時間運(yùn)算,其次執(zhí)行關(guān)系運(yùn)算,最后執(zhí)行邏輯運(yùn)
算。如果在表達(dá)式中包含圓括號,首先應(yīng)該計算出圓括號中的結(jié)果,其優(yōu)先級
最高。
11、D
12、B
【解析】在C語言中可以用一個標(biāo)識符來代表一個常量稱為符號常量。這個標(biāo)
識符必須在程序中進(jìn)行特別的指定并符合標(biāo)識符的命名規(guī)則。用作符號常量的
標(biāo)識符通常采用大寫字母表示在主函數(shù)中其值不能再被定義。所以選擇B選
項。
13、D
14、A
15、C
16、B
17、B
18、D
19、C
20、C
二、判斷題
1、錯誤
2、正確
3、錯誤
4、正確
5、正確
6、錯誤
7、錯誤
8、錯誤
9、正確
10、正確
三、填空題
1、[1]1[2]3
2、1
3、循環(huán)
4、['printf("a=%d,b=%d”,a,b)]
5、fopen#fopen()Sfopen()
四、程序分析題
1、6
2、17
3、a=-5
4、x[0]=8,x[l]=5
五、編程題
1、^include<stdio.h>
main()
(
inta,b,c,i;
a=0;
c=0;
for(i=0;i<=100:i+=2)
a+=i;
b=i+l;
c+=b;
}
printf(z/sumofevensis%d\n〃,a);
printf(''sumofoddsis%d\n,z,c-101);
)
2、^include“stdio.h〃
main()
(
chars[10];
inti;
longintn=0;
scanf(〃/s〃,s);
for(i=0;i<strlen(s);i++)
n=n*10+s[i]-,O';
printfCn=%ld\n",n);
}
3、doubleFun(structStudcntScore*a,intn){
inti;
doublesum=0.0;
for(i=0;i<n;i~+)
(
sum十二aFil.score:
}
returnsum/n;
)
intmain()
(
structStudentScorea[100];
intn;〃學(xué)生數(shù)量
inii;
printf(〃請輸入學(xué)生數(shù)量:〃);
scanf(〃%d〃,&n);
for(i=0;i<n;i-+)
(
printf(〃請輸入第%d個學(xué)生的成績:〃,i+1);
scanf&a[i].score);
)
printf("機(jī)f〃,F(xiàn)un(a,n));
return0;
}
請輸入學(xué)生數(shù)量:3
請輸入第1個學(xué)生的成績:90
請輸入第2個學(xué)生的成績:100.0
請輸入第3個學(xué)生的成績:80
90.000000
計算機(jī)C語言期末(三)
(總分150分,考試時長120分鐘)
一、單項選擇題(每小題2分,共40分)
1、程序運(yùn)行輸出了錯誤的結(jié)果,可以排除下列哪一個因素。
A、算法錯誤
B、運(yùn)行時輸入數(shù)據(jù)錯誤
C、未通過編譯
D、系統(tǒng)資源配置穴當(dāng)
2、下列標(biāo)識符,不合法的是o
A、abc
B、_d
C、123
D、el
3、已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<cr>,使i、j、k
的值分別為2、3、4,下列正確的輸入語句是o
A、scanf(〃%3d,%o3d,%3d〃,&i,&j,%k);
B、scanf(〃%d,%d,%d〃,&i,8Lj,&k);
C、scanf(〃%d%d%d〃,&i,&j,&k);
D、scanfCi=%d,j=%d,k=%d〃,&i,&j,&k);
4、當(dāng)從鍵盤上輸入字符〃12134211〃下面程序的輸出結(jié)果是o
main()
(
chars;
intvl=0,v2=0,v3=0,v4=0,k;
for(k=0;k<=7;k-+)
(
scanf&s);
switch(s)
(
default:v4++;
case'1':vl++;
case'3':v3++;
case'2':v2++;
printf(z,vl=%d,v2=%d,v3=%d,v4=%d\n〃,vl,v2,v3,v4);
}
A、vl=4,v2=2,v3=l,v4=l
B>vl=4,v2=9,v3=3,v4=l
C、vl=5,v2=8,v3=6,v4=l
D、vl=8,v2=8,v3=8,v4=8
5、在C語言中,為了結(jié)束由while語句構(gòu)成的循環(huán),while后一對圓括號中
表達(dá)式的值應(yīng)該為
A、0
B、1
C、TRUE
D、非0
6、在c語言中,不允許有常量的數(shù)據(jù)類型是o
A、整型
B、結(jié)構(gòu)型
C、字符型
D、字符串
7、與十進(jìn)制數(shù)96等值的二進(jìn)制是o
A、01100000
B、10010110
C、01100001
D、01100011
8、下列選項中,能夠正確定義數(shù)組的語句是。
A、intnum[0..2008];
intnum[];
C、intN=2008;
D、SdefineN2008
intnum[N];intnum[N]
9、以下標(biāo)識符中,不能作為合法的c用戶定義標(biāo)識符的是o
A、For
B、pririLf
C、WORD
D、sizeof
10、下列選項中,值為1的表達(dá)式是_______o
A、1-'0'
B、
C、'1'-0
D、'\0','0'
11>下面程序輸出數(shù)組中的最大值,由S指針指向該元素.
voidmain()
(
inta[10]=(6,7,2,9,1,10,5,8,4,3,},*p,xs;
for(p=a,s=a;p-a<10;p++)
if()s=p;
printf("themax:%d”,*s):
)
則在if語句中的判斷表達(dá)式應(yīng)該是o
A、p>s
B、*p>*s
C^a[p]>a[s]
D、p-a>p-s
12、下列程序的輸出結(jié)果是________。
intfl(intx,inty)
(
returnx>y?x:y:
)
intf2(intx,inty)
(
returnx>y?y:x:
}
main()
(
inta=4,b=3,c=5,d=2,e,f,g;
e=f2(fl(a,b),fl:c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n,z,e,f,g);
)
A、4,3,7
B、3,4,7
C、5,2,7
D、2,5,7
13>有輸入語句:scanf("a=%d,b=%d,c=%d〃,&a,&b,&c);
為使變量a的值為1,b為3,c為2,從鍵盤輸入數(shù)據(jù)的正確形式應(yīng)當(dāng)是
________。(注:-表示空格)
A、132V回車,
B、1,3,2V回車〉
C、a=l1—1b=3LJc=2V回車〉
D、a=l,b=3,c=2V回車〉
14、下列一維數(shù)組定義正確的是o
Axx=5;intnum[x];
B、constihtx=5;floatnum[x];
C、constfloatx=5;intnum[x];
D、constinLx;x-5;iriLnum[x];
15、有以下程序
voidfun(char**D)
(
++P:
printf("%s”,*p);
)
mainO
(
char*a[]={MMornin9,>,AfternoonEvening",Nightw);
fun(a):
)
程序的運(yùn)行結(jié)果是_______。
A、Afternoon
B、fternoon
C、Morning
D、orning
16、有以下程序
#include<stdio.h>
intmain()
(
intm[][3]={1,4,7,2,5,8,3,6,9};
inti,j,k=2;
ror(i-0;i<3;i+-)prinLrC%2d\m[k][i]);
)
執(zhí)行后輸出結(jié)果是o
A、456
B、258
C、369
D、789
17、有以下程序
ttinclude<stdlib.h>
structnode
(
intnum;
structnode*next;
};
main()
(
structnode*p,xq,*「;
intsum=0;
p=(structnodex)malloc(sizeof(structnode));
q=(structnodex)malloc(sizeof(structnode));
r=(structnodemalloc(sizeof(structnode));
p->num=l;
q->num=2;
r->num=3;
p->ncxt=q;
q->next=r;
r->next=null;
sum+=q->next->num;
sum+=p->num;
printfsum):
)
執(zhí)行后的輸出結(jié)果是。
A、3
B、4
C、5
D、6
18、有以下程序:
main()
(
intx=102,y=012:
printf(〃%2d,%2d\n〃,x,y);
)
執(zhí)行后輸出結(jié)果是O
A、10,01
B、02,12
C、102,10
D、02,10
19、下面關(guān)于數(shù)組的初始化正確的是o
A、charstr[]={'a','b','c'}
B、charstr[2]={'a','b','c'}
C、charstr[2][3]={{,a,,5b),},{'c','d'},{'e','f'}}
D、charstr()='b','c'}
20、有以下程序
#include<stdio.h>
main()
(
structstu
(
charname[9];
charsex;
doublescore[2];
)
structstua={"zhao",'m,85.0,90.0),b={"qian",'f',95.0,92.0};
b二a;
printf(/z%s,%c,%2.Of,%2.0f\n〃,b.name,b.sex,b.score[0],b.score[1]);
}
程序的運(yùn)行結(jié)果是_____o
A、Qian,f,95,92
B、Qian,m,85,90
C、Zhao,f,95,92
D、Zhao,m,85,90
二、判斷題(每小題2分,共20分)
()1、c語言中,當(dāng):nt型與double型數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算時,數(shù)據(jù)類型由
double型向int型轉(zhuǎn)換。
()2、表達(dá)式0195是一個八進(jìn)制整數(shù)。
()3、switch語句中的case和default的出現(xiàn)次序是任意的。
()4、while語句的一般形式如下,其中的循環(huán)體語句只能是一條語句。
while(表達(dá)式)循環(huán)體語句
()5、chars="CLanguage";表示s是一個指向字符串的指針變量,把字
符串的首地址賦予s
()6、在一個函數(shù)中調(diào)用另一個被調(diào)函數(shù)時,如果被調(diào)用函數(shù)在主調(diào)函數(shù)之前
定義,可以不進(jìn)行說明。
()7、用字符串常量給數(shù)組賦初值時,如果提供的字符個數(shù)小于數(shù)組的長度,
則在最后一個字符后加'\0'作為字符串結(jié)束標(biāo)志。
()8、在c語言程序設(shè)計中函數(shù)是允許嵌套定義的。
()9、函數(shù)名代表該函數(shù)的入口地址。因此,可用函數(shù)名給指向函數(shù)的指針
變量賦值
()10、c語言程序是從源文件的第一條語句開始執(zhí)行的
三、填空題(每小題4分,共20分)
1、數(shù)學(xué)表達(dá)式lOOVa或者aV-20改寫為c語言表達(dá)式是。注:表達(dá)
式要在英文半角狀態(tài)下按原表達(dá)式順序書寫,且表達(dá)式中不要留空格。
2、C語言提供的三種邏輯運(yùn)算符是o
3、c語言三個循環(huán)語句分別while語句語句和語句。
4、以下函數(shù)值的類型是[1]0
fun(floatx)
(
floaty;
y=3*x-4;
returny;
)
5、全局變量又稱外部變量,是在函數(shù)定義的變量。
四、程序分析題(每小題5分,共20分)
1、Sinclude<stdio.h>
voidmain()
(
inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i+-)s+=a[i][i]+a[i][3-i-l];
printf("%d\n〃,s);
)
2、有一下程序
#include<stdio.h>
main()
(
intf,fl,f2,i;
fl=0;
f2=l;
printf(,z%d%d〃,門,f2);
for(i=3;i<=5;i-+)
(
f=fl+f2;
printf(級d〃,f);
fl=f2;
f2=f;
}
printf(〃\n〃);
}
程序運(yùn)行后的輸出結(jié)果是O
3、以下程序可求出所有的水仙花數(shù)。(水仙花數(shù)是三位正數(shù),其各位數(shù)字的立
方和等于該正數(shù),如:407=4*4*4+0*0*0+7*7*7)main()
(
intx,y,z,a[8],n,i=0;
printf(z/thespecialnumbersare:\n");
for([1]________;ni++)
x=m/100;
y=[2]
z=m%10;
if(m=x*x*x+y*y*y+z*z*z)
(
[3];
i++;
}
}
for(x-0;x<i;x-+)prinIf(%6d,z,a[x]);
}
4、下面程序的功能是求出用數(shù)字0至9可以組成多少個不重復(fù)的三位偶數(shù)。
請分析程序填空。
#include<stdio.h>
main()
(
inin-0,i,j,k;
for(i=l;i<=9;i-+)
for(k=0;k<=8;[1]________)
if(k!=i)for(j=0:j<=9;j++)
if([2])n++;
printf(〃n=%d\rT,n);
}
五、編程題(每小題分,共50分)
1、打印樓梯,同時在樓梯上方打印兩個笑臉。(本題12分)
2、編寫程序,判斷從鍵盤輸入的字符中數(shù)字字符的個數(shù)、大寫字母的個數(shù)、小
寫字母的個數(shù)及其它字符的個數(shù),以*作為字符輸入結(jié)束標(biāo)志。(本題18分)
3、輸入n個朋友的信息,包括姓名、生日、電話號碼,本題要求編寫程序,按
照年齡從大到小的順序依次輸出通訊錄。題目保證所有人的生日均不相同。
輸入格式:
輸入第一行給出正整數(shù)n(<10)o隨后n行,每行按照“姓名生日電話號
碼”的格式給出一位朋友的信息,其中“姓名”是長度不超過10的英文字母組
成的字符串,“生日”是yyyymmdd格式的日期,“電話號碼”是不超過17位
的數(shù)字及+、-組成的字符串。
輸出格式:
按照年齡從大到小輸出朋友的信息,格式同輸出。
輸入樣例:
3
zhang1985040313912345678
wang19821020+86/p>
qian1984061913609876543
輸出樣例:
wang19821020+86/p>
qian1984061913609876543
zhang1985040313912345678(本題20分)
參考答案
一、單項選擇題
1、C
2、C
【解析】123不是合法的標(biāo)識符,標(biāo)識符不能以數(shù)字開頭。
3、B
4、C
5、A
6、B
7、A
8、D
9、D
10、B
【解析】在C程序中,字符量可參與任何整數(shù)運(yùn)算。字符參與運(yùn)算時,首先要
將字符轉(zhuǎn)換為對應(yīng)的ASCII碼值再參與整數(shù)運(yùn)算。字符'1'對應(yīng)的ASCTT碼值是
49,字符'0'對應(yīng)的ASCII碼值是48,字符'\0'是字符串結(jié)束標(biāo)識符NULL,其
對應(yīng)的ASCII碼值是0。
11、B
12、A
【解析】根據(jù)函數(shù)intfl(intx,inty){
returnx>yx:y;}和intf2(intx,inty){
returnx)>y:x;}的定義可知,如果x>y成立,則函數(shù)fl返回x的值,函
數(shù)f2返回y的值。所以fl(a,b)=4,fl(c,d)=5,f2(a,b)=3,f2(c,d)=2,故
e=f2(4,5),f二門⑶2)=3,g=4+3+5+2-4-3二7。
13、D
14、B
【解析】數(shù)組的卜標(biāo)不能是變量,不能為非整數(shù),定義為常量的標(biāo)識符不能再
用來賦值,只能在定義時初始化。
15、A
16、C
【解析】變量k的初值為2,循環(huán)執(zhí)行了3次,分別輸出口[2][0]、成2][1]和
m[2][2],其值分別為3,6,9。
17、B
18、C
19、A
【解析】本題考查的是字符數(shù)組的初始化。選項B)中用3個元素初始化大小為
2的數(shù)組,越界了;選項C)中應(yīng)該是2行3列的數(shù)組,題中使用3行2列初始
化;選項D)中數(shù)組合后應(yīng)用方括號。
20、D
二、判斷題
1、錯誤
2、錯誤
3、正確
4、正確
5、正確
6、正確
7、正確
8、錯誤
9、正確
10、錯誤
三、填空題
1、100<alla<-20#a<-2011100<a#a>10011a<-20#a<-2011a>1008100<
all-20>a#-20>alll00<a#a>10011-20>a#-20>alla>100
2、&,//,!
3、['(10,力"2語句‘,'1'0『語句’]
4、int
5、夕卜部#夕卜
四、程序分析題
1、30:該程序的作用是將數(shù)組的對角線上的數(shù)字相加。
2、「01123']
3、【1】m=100;
m<1000[2]m/10%10或m%100/10[3]a[i]=m
4、【1】k+=2[2]i!=j&&k!=j
五、編程題
1、程序分析:用i控制行,j來控制列,j根據(jù)i的變化來控制輸出黑方格的
個數(shù)。
程序源代碼:
#include"stdio.h"
main()
inti,j;
printf(〃\l\l\n〃);/*輸出兩個笑臉*/
for(i=l;i<ll;i+-)
for(j=l;j<=i;j++)
printfC%c%cz,,219,219);
printf(〃\n");
)
2、voidmain()
(
inti,x,m=0,n=0,k=0,j=0;
chara[20];
printf(〃請輸入字符串:〃);
gets(a);
x=strlen(a);
for(i=0;i='O'&&a[i"二'9')
m++;
elseif(a[i]>=,A*&&a[i]<=,7!)
n++;
elseif(a[i]>=,a&&a[i]<=,z)
k++;
else
j++;
}
printf(*%d,%d,%d,%d\n,z,m,n,k,j):
)
3、Sinclude<stdio.h>
structmessage
(
charnamel[30];
charname2[30];
charname3[30];
doubleprice;
};
structmessaged[10];
intmain()
intN;
scanf(〃%d”,&N);
inti,j;
for(i=0;i<N;i++)
{
scanf(,z%s%s%s*,d[i].namel,d[i].nane2,d[i].name3);
scanf&d[i].price);
)
intt,r;
doublemax,min;
niax-iiiin-d[O].price;
for(j=0;j<N;j++)
(
if(min>d[j].price)
(
min=d[j].price;
t=j;}
if(max<d[j].price)
(
max=d[j].price;
r二j;
)
}
printf(,z%.21f,%s%s%s\nz,,max,d[r].namel,d[r].name2,d[r].name3);
printf(/z%.21f,%s%s%s\nz\min,d[t].namel,d[t].name2,d[t].name3);
return0;
}
計算機(jī)C語言期末(四)
(總分150分,考試時長120分鐘)
一、單項選擇題(每小題2分,共40分)
1、若ch為char型變量,k為int型變量(已知字符a的ascii十進(jìn)制代碼為97),
則以下程序段的執(zhí)行結(jié)果是och=,a;
k=12;
printf("%x,%o,ch,ch,k);
printfCk=%%d\n",k);
A、因變量類型與格式描述符的類型不匹配,輸出無定值
B、輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C、61,141,k=%d
D、61,141,k=%12
2、設(shè)x的值為4,則表達(dá)式y(tǒng)=(++x)+(++x)+(++x)后,y的值是。
A、12
B、18
C、16
D、21
3、若有以下數(shù)組說明,則i=10;a[a[i]]元素數(shù)值是—o
inta[12]={l,4,7,10,2,5,8,11,3,6,9,12);
A、10
B、9
C、6
D、5
4、與〃y=(x>0?l:xVO?T:0)〃;的功能相同的if語句是。
A、if(x>0)y=l;
B、if(x)
elseif(x>0)y=l;
elsey=0;elseif(x%0)y=-l;
elsey=0;
C、y=-l
y=0;
if(x)if(x>=0)
if(x>0)y=l;if(xi>=0)y=l;
elseif(x-0)y=0;elsey=-l;
elsey=-l;
5、下列程序的運(yùn)行結(jié)果是o
voidmain()
(
ints=0,k;
for(k=7;k>l;k-)
(
switch(k)
(
case1:case4:case7:s++:break;
case2:case3:case6:break;
case0:case5:s+=2:break;
}
}
printf("s=%d",s);
)
A^s=3
B、s=4
C、s=5
D、無輸出結(jié)果
6、以下程序中函數(shù)scmp的功能是返回形參指針si和s2所指字符串中較小字
符串的首地址
ttinclude<stdio.h>
#include〈string.h>
char*scmp(char*sl,char*s2)
(
if(strcmp(sl,s2;<0)return(si);
elsereturn(s2):
)
main()
(
inii;
charstring[20],str[3][20];
for(i=0;i<3;i+~)gets(str[i]);
st
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第二儲油罐建設(shè)合同書
- 公寓租賃合同及家電清單
- 設(shè)備采購與安裝合同
- 護(hù)理員的初級培訓(xùn)課件
- 運(yùn)動解剖學(xué)題庫(含參考答案)
- 人教版小學(xué)四年級上冊數(shù)學(xué)口算練習(xí)試題 全套
- 精密儀器銷售合同模板
- 電子商務(wù)戰(zhàn)略合作合同范本
- 腰椎病人骨折的護(hù)理
- 班級心理健康教育
- 配位化學(xué)教材全文
- 事業(yè)單位固定資產(chǎn)購置流程圖
- 變壓器生產(chǎn)工藝
- 融創(chuàng)文旅集團(tuán)出差管理制度(培訓(xùn)課件)
- 基坑監(jiān)測周報
- 客戶信用等級評價表
- CCTV雨污水管道檢測缺陷內(nèi)容判斷依據(jù)判斷標(biāo)準(zhǔn)
- 《青少年管弦樂隊指南》.PPT
- 合規(guī)管理有效性評估表
- 應(yīng)急管理試題庫
- 苯的加成精彩動畫演示教學(xué)課件
評論
0/150
提交評論