版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2/2C語言程序設(shè)計(jì)(總分100分,考試時(shí)長90分鐘)一、單項(xiàng)選擇題(每小題2分,共40分)1、對于存儲(chǔ)同樣一組數(shù)據(jù)元素而言,________。 A、順序結(jié)構(gòu)比鏈接結(jié)構(gòu)多占存儲(chǔ)空間 B、順序結(jié)構(gòu)與鏈接結(jié)構(gòu)相比,更有利于對元素的插入、刪除運(yùn)算 C、順序結(jié)構(gòu)比鏈接結(jié)構(gòu)易于擴(kuò)充空間 D、順序結(jié)構(gòu)占用整塊空間而鏈接結(jié)構(gòu)不要求整塊空間【答案】D【解析】順序結(jié)構(gòu)的存儲(chǔ)空間就是存放數(shù)據(jù)信息的空間,不需要附加空間,而鏈接結(jié)構(gòu)節(jié)點(diǎn)(即元素)的存儲(chǔ)空間包括兩部分:一部分存放數(shù)據(jù)信息,一部分存放指針信息,因此A選項(xiàng)是錯(cuò)誤的:在順序結(jié)構(gòu)中,要插入、刪除元素需移動(dòng)其他元素;而在鏈接結(jié)構(gòu)中,插入、刪除元素不需要移動(dòng)其他元素。因此,選擇項(xiàng)B是錯(cuò)誤的;順序結(jié)構(gòu)中,存儲(chǔ)空間必須事先定義,在運(yùn)算過程中難以擴(kuò)充:鏈接結(jié)構(gòu)中,元素之間通過指針鏈接,空間易于擴(kuò)充。因此選擇項(xiàng)C也是錯(cuò)誤的;順序結(jié)構(gòu)中,元素之間的關(guān)系通過存儲(chǔ)單元的鄰接關(guān)系來表示,其存儲(chǔ)空間必須占用整塊空間:鏈接結(jié)構(gòu)中,節(jié)點(diǎn)之間的關(guān)系通過指針來表示,不要求整塊空間。因此,D是正確答案。2、是不正確的c語言賦值語句。 A、x=1,y=2 B、x++ C、x=y(tǒng)=5 D、y=int(x);【答案】D3、分析下列程序:
#include<stdio.h>
main()
{
int*p1,*p2,*p;
inta=6,b=9;
p1=&a;
p2=&b;
if(a<b)
{
p=p1;
p1=p2;
p2=p;
}
printf("%d,%d",*p1,*p2);
printf("%d,%d",a,b);
}
程序的輸出結(jié)果為________。 A、9,66,9 B、6,99,6 C、6,96,9 D、9,69,6【答案】A【解析】通過p1=&a,p2=&b分別將a、b的地址賦給指針p1、p2,接著執(zhí)行if語句,發(fā)現(xiàn)a<b成立,則通過交換p1、p2的值,即交換a、b所在存儲(chǔ)單元的地址,但是a、b的值并沒有發(fā)生變化。4、執(zhí)行循環(huán)語句后,i變量的值是________i=4;while(i--);printf("%d",i); A、0 B、-1 C、1 D、有錯(cuò)誤【答案】B5、調(diào)用函數(shù)f(27)的輸出結(jié)果是________。
voidf(intn)
{
if(n<5)printf("%d",n);
else
{
printf("%d",n%5);
f(n/5);
}
} A、102 B、201 C、21 D、20【答案】B6、c語言中,錯(cuò)誤的int類型的常數(shù)是________。 A、1E5 B、0 C、037 D、0xaf【答案】A7、下述對c語言字符數(shù)組的描述中錯(cuò)誤的是________? A、字符數(shù)組可以存放字符串. B、字符數(shù)組中的字符串可以整體輸入?輸出. C、可以在賦值語句中通過賦值運(yùn)算符"="對字符數(shù)組整體賦值. D、不可以用關(guān)系運(yùn)算符對字符數(shù)組中的字符串進(jìn)行比較.【答案】C8、下面實(shí)現(xiàn)換行功能的格式符為________? A、\t B、\n C、\a D、\k【答案】B9、下列選項(xiàng)中,表示字符串末尾的結(jié)束標(biāo)志是________。 A、'\n' B、'\r' C、'\0' D、NULL【答案】C【解析】字符串末尾結(jié)束標(biāo)志為'\0'10、以下函數(shù)findmax擬實(shí)現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯(cuò)導(dǎo)致不能實(shí)現(xiàn)預(yù)定功能
#defineMIN-2147463647
intfindmax(intx[],intn)
{
inti,max;
for(i=0;i<n;i++)
{
max=MIN;
if(max<x[i])max=x[i];
}
returnmax;
}
造成錯(cuò)誤的原因是________。 A、定義語句inti,max中max未賦值 B、賦值語句max=MIN;中,不應(yīng)該給max賦MIN值 C、語句if(max<x[i])max=x[i];中判斷條件設(shè)置錯(cuò)誤 D、賦值語句max=MIN;放錯(cuò)了位置【答案】D11、在調(diào)用函數(shù)時(shí),如果實(shí)參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是 A、地址傳遞 B、單向值傳遞 C、由實(shí)參傳給形參,再由形參傳回實(shí)參 D、傳遞方式由用戶指定【答案】B12、關(guān)于c語言中數(shù)的表示,以下敘述中正確的是________。 A、只有整型數(shù)在允許范圍內(nèi)能精確無誤地表示,實(shí)型數(shù)會(huì)有誤差 B、只要在允許范圍內(nèi)整型數(shù)和實(shí)型數(shù)都能精確地表示 C、只有實(shí)型數(shù)在允許范圍內(nèi)能精確無誤地表示,整形數(shù)會(huì)有誤差 D、只有用八進(jìn)制表示的數(shù)才不會(huì)有誤差【答案】A13、在c語言中,以作為字符串結(jié)束標(biāo)志 A、’\n’ B、’’ C、’0’ D、’\0’【答案】D14、以下選項(xiàng)中不能正確把cl定義成結(jié)構(gòu)體變量的是________。 A、typedefstruct
{
intred;
intgreen;
intblue;
}COLOR;
COLORcl; B、structcolorcl
{
intred;
intgreen;
intblue;
}; C、structcolor
{
intred;
intgreen;
intblue;
}cl; D、struct
{
intred;
intgreen;
intblue;
}cl;【答案】B15、有以下程序
main()
{
chara[]={'a','b','c','d','e','f','g','h','\0'};
inti,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d\n",i,j);
}
程序運(yùn)行后的輸出結(jié)果是______。 A、9,9 B、8,9 C、1,8 D、9,8【答案】D16、下面程序的運(yùn)行結(jié)果是________。
#include<stdio.h>
main(){
inta=1,b=10;
do
{
b-=a;
a++;
}
while(b--<0);
printf("a=%d,b=%d\n",a,b);
} A、a=3,b=11 B、a=2,b=8 C、a=1,b=-1 D、a=4,b=9【答案】B【解析】本題考查兩個(gè)知識點(diǎn):自加自減運(yùn)算符和do-while循環(huán)語句。do-while循環(huán)條件是b--<0,所以循環(huán)體語句只執(zhí)行一次。17、有以下定義和語句
structworkers
{
intnum;
charname[20];
charc;
srruct
{
intday;
intmonth;
intyear;
}
s;
};
structworkersw,*pw;
pw=&w能給w中year成員賦1980的語句是________。 A、*pw.year=1980; B、w.year=1980; C、pw->year=1980; D、w.s.year=1980;【答案】D18、設(shè)有如下定義:intx=10,y=4,z;
4則語句:printf(''%d\n'',z=(x%y,x/y));
的輸出結(jié)果是________。 A、1 B、0 C、2 D、3【答案】C19、若有說明inta[3][4];則a數(shù)組元素的非法引用是________。 A、a[0][2*1] B、a[1][3] C、a[4-2][0] D、a[0][4]【答案】D【解析】此題考查的是數(shù)組元素的引用。對于已定義的數(shù)組a[M][N],數(shù)組元素的正確引用必須滿足行下標(biāo)小于M,列下標(biāo)小于N且為正整數(shù)。此題中,選項(xiàng)D)中列下標(biāo)值出現(xiàn)溢出。20、設(shè)有如下定義
structss
{
charname[10];
intage;
charsex;
}std[3],*p=std;
下面各輸入語句中錯(cuò)誤的是________。 A、scanf("%d",&(*p).age); B、scanf("%s",&); C、sean("%c",&std[0].sex); D、scanf("%c",&(p->sex));【答案】B【解析】本題考核的知識點(diǎn)是結(jié)構(gòu)型數(shù)組的應(yīng)用。選項(xiàng)A中“&(*p).age”代表的是std[0]age的地址,是正確的,選項(xiàng)C也是正確的,選項(xiàng)D先用指針變量引用結(jié)構(gòu)型的成員sex,然后取它的地址,也是正確的,選項(xiàng)B中的“"是錯(cuò)誤的引用,因?yàn)閟td是數(shù)組名,代表的是數(shù)組的首地址,地址沒有成員“name”。所以B選項(xiàng)為所選。二、填空題(每小題2分,共20分)1、c語言中free(p)的作用是釋放由________所指向的內(nèi)存區(qū)間?!敬鸢浮縫2、若有語句doublex=17;inty;,當(dāng)執(zhí)行y=(int)(x/5)%2;之后y的值是________?!敬鸢浮?3、C語言源程序經(jīng)過編譯后,生成文件的后綴名是___?!敬鸢浮?c4、c語言規(guī)定,不能使用c語言中的________做標(biāo)識符?!敬鸢浮筷P(guān)鍵字5、c語言程序的三種基本結(jié)構(gòu)是順序結(jié)構(gòu)?選擇結(jié)構(gòu)和________?【答案】['循環(huán)結(jié)構(gòu)']6、下列給定程序中函數(shù)fun()的功能是:用遞歸算法計(jì)算斐波拉契數(shù)列中第n項(xiàng)的值。從第1項(xiàng)起,斐波拉契數(shù)列為:l,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項(xiàng)的斐波拉契數(shù)值為13。請改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
longfun(intg)(
switch(g);
{
case0:
return0;
case1:case2:return1;
}
return(fun(g-1)+fun(g-2));)
voidmain()
{
longfib;
intn;
printf("inputn:");
scanf("%d",&n);
printf("n=%d\n",n);
fib=fun(n);
printf("fib=%d\nkn",fib);
}【答案】(1)錯(cuò)誤:switch(g);
正確:switch(g)(2)錯(cuò)誤:casel:case2:returnl;
正確:casel;
case2:returnl;7、在c語言中,將字符串中大寫字母轉(zhuǎn)換成小寫字母的函數(shù)是_____________。【答案】strlwr#strlwr()#strlwr(字符串)8、從文件讀入一行,讀取字符包括空格,使用函數(shù)________?!敬鸢浮縢ets()9、輸入一個(gè)字符,如果它是大寫字母,則把它變成小寫字母,如果它是一個(gè)小寫字母,則把它變成大寫字母,其它字符不變。請分析程序填空。
main()
{
charch;
scanf("%c",&ch);
if(【1】________)ch=ch+32;
elseif(ch>='a'&&ch<='z')【2】________;
printf("%c",ch);
}【答案】【1】ch>='a'&&ch<='z'【2】ch=ch-3210、有以下程序
#include<stdio.h>
main(){
inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{
n[i]=n[i-1]*3+1;
printf("%d",n[i]);
}
}
程序運(yùn)行后的輸出結(jié)果是________?!敬鸢浮縖'141340']三、編程題(每小題分,共40分)1、編寫程序:打印出楊輝三角形(要求打印出10行)。
結(jié)構(gòu)如下所示:
1
11
121
1331
14641
(本題10分)【答案】#include<stdio.h>
intmain()
{
inti,j;
inta[10][10];
printf("\n");
for(i=0;i<10;i++){
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<10;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++){
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}2、編寫程序:從鍵盤上輸入一個(gè)數(shù)字組成的字符串(字符串長度小于8),將該字符串轉(zhuǎn)換成一個(gè)十進(jìn)制數(shù)
例如:從鍵盤上輸入2345,則程序運(yùn)行的結(jié)果應(yīng)當(dāng)為:n=2345()(本題14分)【答案】#include"stdio.h"
main()
{
chars[10];
inti;
longintn=0;
scanf("%s",s);
for(i=0;i<strlen(s);i++)
n=n*10+s[i]-'0';
printf("n=%ld\n",n);
}3、編寫程序:使用結(jié)構(gòu)體,創(chuàng)建一個(gè)長度為n的鏈表。(本題16分)【答案】#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedefstructLNode{
intdata;
structLNode*next;
}LNode,*LinkList;
LinkListCreateList(intn);
voidprint(LinkListh);
intmain()
{
Li
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市場租賃合同
- 塔吊安裝進(jìn)度管理合同
- 戶外鋼骨架廣告位租賃合同
- 帶家具的個(gè)人租房合同
- 物流行業(yè)無人機(jī)配送技術(shù)應(yīng)用推廣方案
- 保險(xiǎn)行業(yè)區(qū)塊鏈保險(xiǎn)方案
- 社交媒體平臺運(yùn)營合作協(xié)議
- 文化活動(dòng)組織策劃合同
- 進(jìn)出口代理合同糾紛指定執(zhí)行裁定書
- 旅游行業(yè)智能客服與在線預(yù)訂系統(tǒng)
- 2024年大學(xué)試題(管理類)-公共部門決策的理論與方法筆試歷年真題薈萃含答案
- 在美術(shù)課堂中融入心理健康教育
- 2024年上海外服招聘筆試參考題庫附帶答案詳解
- 中國AED布局與投放專家共識護(hù)理課件
- 無菌注射劑生產(chǎn)線清潔驗(yàn)證方案
- 2024年健康照護(hù)師理論試題
- 2023年線路維護(hù)主管年度總結(jié)及下一年展望
- 2023年意識形態(tài)工作責(zé)任清單及風(fēng)險(xiǎn)點(diǎn)臺賬
- 《經(jīng)典動(dòng)畫賞析》課件
- 大學(xué)英語四級閱讀理解精讀100篇
- 《活法》名著分享讀書分享會(huì)ppt
評論
0/150
提交評論