




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
歷年計(jì)算機(jī)C語言專升本題目(-)
(總分100分,考試時(shí)長(zhǎng)90分鐘)
一、單項(xiàng)選擇題(每小題2分,共40分)
1、以下標(biāo)識(shí)符中,不能作為合法的C用戶定義標(biāo)識(shí)符的是o
A、putchar
double
C、_123
D、INT
2、下面判斷正確的是o
A、char*a=〃china〃;等價(jià)于char*a;*a=〃china”;
charstr[5]=,,china,/;等價(jià)于charstr口=“china”;
C、char*S二〃china〃;等價(jià)于char*S;S="china”;
charc[4]-"abc”,d[4]-〃abc〃;等價(jià)丁ch"c[4]-d[4]-〃abc〃;
3、c語言對(duì)嵌套的if語句的規(guī)定是:else總是與配對(duì)。
A、與之前最近的述
B、第一個(gè)if
C、縮進(jìn)位置相同的if
D、與之前最近的且尚未配對(duì)的if
4、若變量已正確定義,以下while循環(huán)正常結(jié)束時(shí),累加到pi的最后一項(xiàng)item
的值滿足o
A、item的絕對(duì)值小于0.0001
B、item的絕對(duì)值大于0.0001
C、item的絕對(duì)值大于等于0.0001
D、item的絕對(duì)值小于等于0.0001
5、設(shè)有以下語句:charstrl□="string”,str2[8],*str3,*str4=〃string";則
下列選項(xiàng)中,不是對(duì)庫函數(shù)strepy的正確調(diào)用,此庫函數(shù)用來復(fù)制字符串。
A、strepy(str1,“HELLO1〃);
strepy(str2,,,HELL02,/);
C、strepy(str3,,,HELLO3,/);
D、strepy(str4,“HELLO4");
6、設(shè)有定義:longx-1234561;則以下能夠正確輸出變量x值的語句是
__O
A、printf("x二%d\n",x)
printf("x=%ld\n",x)
C、printf((ix=l\n”,x)
D、printf(wx=%D\nw,x);
7、下面程序輸出的結(jié)果是.
ttinclude<stdio.h>
voidmain()
(
inti,j,x=0;
staticinta[6]={l,2,3,4,5,6);
for(i=0,j=l;i<5;++i,j++)x+=a[i]*a[j];
printfC/%d\n,,>x);
)
A、數(shù)組a中首尾的對(duì)應(yīng)元素的乘積
B、數(shù)組a中首尾的對(duì)應(yīng)元素的乘積之和
C、數(shù)組a中相鄰各元素的乘積
D、數(shù)組a中相鄰各元素的乘積之和
8、調(diào)試程序是指對(duì)程序進(jìn)行
A^編輯
B、編譯
C、查錯(cuò)和排錯(cuò)
D、連接
9、從鍵盤上輸入某字符串時(shí),不可使用的函數(shù)是()。
A、getchar()
B、gets()
C、scanf()
fread()
10、設(shè)charstr[100];inti=5;則引用數(shù)組元素的錯(cuò)誤形式的是
A、str[I+10]
B、*(srr+
C、(str+I-1)
*(&(str++)+
11、有以下程序
main()
(
inta=666,b=888;
printf("%d\n〃,a,b);
}
程序運(yùn)行后的輸出結(jié)果是O
A、錯(cuò)誤信息
B、666
C、888
D、666,888
12、算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是o
A、有窮性
B、簡(jiǎn)潔性
C、可行性
D、確定性
13設(shè)有數(shù)組定義:chararray□:"china”;則數(shù)組array所占的空間為
A、6字節(jié)
B、5字節(jié)
C、4字節(jié)
D、7字節(jié)
14、設(shè)有如下定義:
structsk
(
intn;
floatx;
}data,*p;
若要使p指向data中的n域,正確的賦值語句是________。
A、p=&datn;
*p=datn;
C、p=(structsk*)&datn;
D、p=(structsk*)datn;
15、已知字母a的ascii碼為65,以下程序運(yùn)行后的輸出結(jié)果是
#include<stdio.h>
main()
(
charcl,c2;
cl=a'+'8'-'4>;
c2='a'+'8'5';
printf(z,%c,%d\n,\cl,c2);
}
A、E,68
B、D,69
C、E,D
D、輸出無定值
16、有如下程序
#includedstdio.h>
voidmain()
(
inti,sum=0;
for(i=l;i<=3;sum++)sum+=i;
printf(〃/d\n〃,sum);
)
該程序的執(zhí)行結(jié)果是.
A、6
B、3
C、死循環(huán)
D、0
17、以下選項(xiàng)中,能定義m為合法的結(jié)構(gòu)體變量的是______。
A^typedefstructabc{
doublea;charb;}m;
B、struct(
doublea;charb;)m;
C^structABC{
doublea:charb;}ABCm;
D、typedefABC{
doublea;charb;)ABCm;
18、下面程序的輸出結(jié)果是。
main()
(
externinta;
ai=3;
f();
printf(〃%d\n〃,a);
)
inta=2;
voidf()
(
printf(〃%d&〃,a*a);
a+=a;
)
A、2510
B、25&25
C、10&25
D、25&10
19、以下敘述中錯(cuò)誤的是o
A、對(duì)于double類型數(shù)組,不可以直接用數(shù)組名對(duì)數(shù)組進(jìn)行整體輸入或輸出
B、數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變
C、當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出
“下標(biāo)越界”的出錯(cuò)信息
D、可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)
20、有以下結(jié)構(gòu)體說明和變量的定義,且指針p指向變量a,指針q指向變量bo
則不能把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語句是o
structnode
(
chardata;
structnode*next;
a,b,*p=&a,*q=&b;
A、3475
B、3574
C、1234
D>1235
二、填空題(每小題2分,共20分)
1、在c語言中,關(guān)系運(yùn)算符中的〃等于〃表示為。
2、以下程序的輸出結(jié)果是_______。
main()
(
intx=5,y=6;
printf(〃/da%d〃,x---,----y);
)
3、若有"inta[3][2]={{1,2},{3},{4,5});
〃,則a[2][2]的值是o
4、若有定義:inta=5,b=2,c=l;則表達(dá)式a-bVc|b二二c的值是。
5、c語言三個(gè)循環(huán)語句分別while語句、語句和語句。
6、下列程序的功能是計(jì)算圓的面積,將程序補(bǔ)充完整。
ttdefinePI=3.14159
main()
(
floatr,s;
printfC'Enteranumberr:〃);
s=PI*r*r;
}
7、在c語言中,按函數(shù)在程序中出現(xiàn)的位置可分為以下三種調(diào)用方式:函數(shù)語句、
函數(shù)表達(dá)式和函數(shù)0
8、若有〃inta[3][2]={{l,2},{3},{4,5}};〃,則的值是。
9、有以下程序
#include<stdio.h>
mainO{
intn[2],i,j;
for(i=0;i<2;i++)n[i]=O;
for(i=O;i<2;i++)
for(j=0;j<2;j++)n[j]=n[i]+l;
printf(〃%d\n〃,n[l]);
}程序運(yùn)行后的輸出結(jié)果是。
10、mystrlcn函數(shù)的功能是計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回。請(qǐng)
填空。intmystrlen(char*str)
{
inti;
for(i=0;!='\0';i++);
return();
}
三、編程題(每小題分,共40分)
1、編寫程序:輸出200?300之間的所有素?cái)?shù),要求每行輸出8個(gè)素?cái)?shù)。
(本題10分)
2、任意輸入兩行字符串,把第二行字符串連接到第一行字符串末尾(不用strcat
函數(shù))。(本題14分)
3、通過函數(shù)調(diào)用實(shí)現(xiàn):講結(jié)構(gòu)體數(shù)組中的三個(gè)元素按num成員進(jìn)行升序排列。
要求:
①數(shù)組元素依次賦初值為:{12,"sunny”,89.1}[8,"henry",73.5}、
{21,〃lucy”,9L7}。
②結(jié)構(gòu)體定義如下:structs{intnum;charname[30];floatscore;};(本題
16分)
參考答案
一、單項(xiàng)選擇題
1、A
2、C
【解析】選項(xiàng)A)char*a;*a="china”應(yīng)改為a二china;,選項(xiàng)B)應(yīng)該是
charstr[6];D)項(xiàng)表述方法有錯(cuò)誤。
3、D
4、A
5、C
6、B
7、D
8、C
9、A
10、D
11、B
【解析】本題考查的是輸出格式。printfO函數(shù)中,當(dāng)格式轉(zhuǎn)換說明符個(gè)數(shù)少
于輸出項(xiàng)個(gè)數(shù)時(shí),多余的輸出項(xiàng)不予輸出。
12、B
【解析】本題考/的是算法的特性。有窮性、確定性、有零個(gè)或多個(gè)輸入、有
一個(gè)或多個(gè)輸出、有效性是算法的五大特性。
13、A
【解析】在本題的定義方式中,系統(tǒng)會(huì)自動(dòng)在數(shù)組最后加入一個(gè)‘\0',表示字
符數(shù)組的結(jié)束,因此數(shù)組的長(zhǎng)度是6個(gè)字節(jié)。
14、C
【解析】本題主要考查了結(jié)構(gòu)體變量引用成員數(shù)據(jù)的方法,主要有以下幾種:
結(jié)構(gòu)體變量名,成員名或結(jié)構(gòu)體指針成員名的方法來引用結(jié)構(gòu)體成員。
15、A
【解析】cl='A'+'8'-'4'='A'+'4'='E',c2='A'+'8'-'5'='A'+'3'='D'(ASCII
碼為68),所以程序運(yùn)行結(jié)果為E,68。
16、C
17、B
18、D
19、C
20、B
【解析】在被調(diào)用過程中,有這樣的語句“StaticSum”,因?yàn)樽兞縎um是局
部變量,局部變量除了可以用Dim語句聲明外,還可用Static語句將變量聲明
為靜態(tài)變量,它在程序運(yùn)行過程中可保留變量的值,這就是說每次調(diào)用過程
時(shí),用Static說明的變量保持原來的值。具體過程分析如下:調(diào)用P(l),
所以在被調(diào)過程中N=L執(zhí)行ForNext循環(huán),P(l)=Sum=l;調(diào)用P(2),所以
在被調(diào)過程中N=2,執(zhí)行ForNext循環(huán),P(2)=Sum=4;調(diào)用P(3),所以在被
調(diào)過程中N=3,執(zhí)行ForNext循環(huán),P(3)=Sum=10;調(diào)用P(4),所以在被調(diào)過
程中N=4,執(zhí)行ForNext循環(huán),P(4)=Sum=20;不難看出,最后輸出的結(jié)臭S
值應(yīng)為1+4+10+20=35,所以選項(xiàng)C)正確。
二、填空題
1、==
2、5a5
3、無#不存在
4、0
5、['do-while語句','for語句']
6、['scanf&r)','printf(〃s=%f〃,s)']
7、參數(shù)
8、0
9、3
10^「*(str+i)str[i]','i']
三、編程題
1、^include<stdio.h>
#include<math.h>
main()
intm,j,n=0,k;
for(m=200;m<=300;m++)
k=sqrt(m);
for(尸2;jV=k;j++)
/**********x*foiind************/
if(m%j-0)continue;
if(j>k)
(
if(n%8==0)printf(〃\n〃);
/******x*****fcund************/
printf("%d,”,m);
n++;
}
}
)
2、^include<stdio.h>
#include<string.h>
intmain()
(
charsi[80],s2[80];
inti,11,12,j;
gels(sl);
gets(s2);
ll=strlen(si);
12=strlen(s2);
for(i=ll,j=0;j<12;i++,j++){
sl[i]=s2[j]:
puts(sl);
return0;
)
3、寫法1:在函數(shù)外部定義結(jié)構(gòu)體變量并且賦值,參數(shù)值為空。
charname[30];
floatscore;
}a[3]={{12,“sunny”,89.1},{8,“henry”,73.5},{21,〃lucy〃,91.7}};
voidfun()
(
inti,j;
struct,st:
for(i=0;i<2;i-+)
(
for(j=0;j<2-i;j++)
(
if(a[j].num>a[j+l].num)
(
t=a[j];
a[j]=a[j+l];
a[j-l]=t;
}
}
)
)
intmain()
(
inti;
fun();
for(i=0;i<3;i-+)
printf(,z%d,%s,%f\n,,>a[i].num,a[i].name,a[i].score);
}
return0;
)
8,henry,73.500000
12,sunny,89.099998
21,lucy,91.699997
寫法2:在主函數(shù)中定義變量,通過參數(shù)傳遞變量值
charname[30];
fIoatscore;
};
voidfun(structs*a,intn)
(
inti,j;
structst;
for(i=0;i<n-l;i++)
(
for(j=0;j<n-l-i;j++)
(
if(a[j].num>a[j+l].num)
(
l=a[j];
a[j]=a[j+l];
=t;
)
)
intmainO
structsa[3]={{12,"sunny",89.1),(8,"henry",73.5),
{21,〃lucy〃,91.7}};
inti;
fun(a,3);
for(i=0;i<3;i-+)
(
printf("%d,%s,%f\n”,a[i].num,a[i].name,a[i].score);
}
rpturn0;
)
8,henry,73.500000
12,sunny,89.099998
21,lucy,91.699997
歷年計(jì)算機(jī)C語言專升本題目(二)
(總分100分,考試時(shí)長(zhǎng)90分鐘)
一、單項(xiàng)選擇題(每小題2分,共40分)
1、編寫c語言程序并上機(jī)調(diào)試運(yùn)行的一般過程是_______。
限編輯f編譯f連接--運(yùn)行
B、編譯編輯一連接一運(yùn)行
C、編輯一連接一編譯一運(yùn)行
D、編譯一連接一編輯一運(yùn)行
2、表達(dá)式X&&1等價(jià)于________o
A、x==0
B、x==1
C、x!=0
D.x!=1
3、與〃尸(x>0?l:xV0?T:0)〃;的功能相同的if語句是o
A、if(x>0)y=l;
if(x)
elseif(x>0)y=l;
elsey=0;elseif(x%0)y=-l;
elsey=0;
C、y=-l
D、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;
4、結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。
A、順序結(jié)構(gòu)
B、GOTO跳轉(zhuǎn)
C、選擇(分支)結(jié)構(gòu)
D、重復(fù)(循環(huán))結(jié)構(gòu)
5、若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0WiW9,則
對(duì)a數(shù)組元素不正確的引用是________o
A^a[p-a]
B、*(&
C、p
D、a[10]
6、下列語句合法的是。
A、4+c=b=0;
a=++c;
C、a=2=b=6;
D^a=4++;
7、已知有數(shù)組定義chara[3][4];下列表達(dá)式中錯(cuò)誤的是________。
A、a[2]=〃WIN〃
B、strcpy(a[2],Z,WIN,Z)
C、a[2][3]='W'
D、a[O][l]=a[O][l]
8、若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是
A、-3
B、9
C、-12
D、6
9、判斷兩個(gè)字符串是否相等,正確的表達(dá)方式是_______o
A、while(sl==s2)
B、while(sl=s2)
C>while(strcmp(sl,s2)==0)
D、while(strcmp(si,s2)=0)
10、若有定義:inta[3][4];不能表示數(shù)組元素a[l][l]?
A、*(a[l]+l)
B、*(&a⑴⑴)
C、(*(a+l)[l])
Ds*(a+5)
11、有以下函數(shù)定義:
voidfun(intn,doublex)
)
若以下選項(xiàng)中的變量都已正確定義并賦值,則對(duì)函數(shù)fun的正確調(diào)用語句是
A、fun(inty,doublem);
B、k=fun(10,12.5);
C、fun(x,n):
D^voidfun(n,x);
12、若變量均已正確定義并賦值,以下合法的c語言賦值語句是o
A、x=n/2.5;
B、x==5;
C、x+n=I;
D>5=x=4+l;
13、若要用下面的程序片段使指針變量p指向一個(gè)存儲(chǔ)整型變量的動(dòng)態(tài)存儲(chǔ)單元
int*pp二___malloc(sizeof(int));則應(yīng)填入
A、int
int*
C、(*int)
D^(int*)
14、下面賦值表達(dá)式不正確的是.
structstudent
(
longnum;
charnameL20];
}stl,*p=&stl,st2={101,〃tom〃};
A、stl=st2
p->name=st2.name
C、p->num=st2.num
D、*p=st2
15、若有定義:inta,b,c;以下程序段的輸出結(jié)果是a=ll;b=3;c=0;
printf(z/%d\nz,,c=(a/b,a%b));
A、2
B、0
C、3
D、1
16、判斷關(guān)鍵字*不是關(guān)鍵字。
A、int
B、extern
C、break
main
17、設(shè)有以下語句:
typedefstructtt{charc;inta[4];}cin;則下面敘述中正確的是
__o
A、可以用TT定義結(jié)構(gòu)體變量
B、TT是struct類型的變量
C、可以用CIN定義結(jié)構(gòu)體變量
D、CIN是structTT類型的變量
18x以下程序的輸出結(jié)果是。charstr[15]=〃hello!〃;
printfstrlen(str));
A、15
B、14
C、7
D、6
19、下列程序的運(yùn)行結(jié)果是_____o
main()
inta[6],i;
for(i=2;i<6;i+-)
a[i]=4*(i-2^(i>3))%5;
printf("%2d",a[i]);
)
}
A>2323
B、1212
C、3232
D>2222
20、下列程序的輸出結(jié)果是________。
^include<stdio.h>
structabc
(
inta,b,c,s;
};
main()
(
structabcs[2]={{1,2,3},{4,5,6}};
intt;
t=sLOj.a+s[l].b;
printf(〃%d\n〃,t);
)
A、5
B、6
C、7
D、8
二、填空題(每小題2分,共20分)
1、在c語言中,用轉(zhuǎn)義字符表示。答題提示:雙引號(hào)/單引號(hào)
/反斜線/橫向跳格/回車換行
2、在vc++編譯環(huán)境下,c語言基本整型變量所占字節(jié)數(shù)是一o
3、c語言規(guī)定,不能使用c語言中的_______做標(biāo)識(shí)符。
4、C語言中,關(guān)系表達(dá)式和邏輯表達(dá)式的值是0
5、c語言程序的三種基本結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和。
6、設(shè)有以下程序:
main()
{
intnl,n2;
scanf(〃%d〃,&n2):
while(n2!=0)
(
nl=n2;
n2=n2/10;
printf(z/%d”,nl);
}
)
程序運(yùn)行后,如果從鍵盤上輸入1298;
則輸出結(jié)果為________0
7、在定義函數(shù)時(shí)函數(shù)名后面括號(hào)中的變量名稱為o
8、若有說明:inta口⑶={{1,2,3},{4,5},{6,7}};則數(shù)組a的第一維的大小
為o
9、以下程序運(yùn)行結(jié)果是o
^include<stdio.h>
voidmain()
(
intx,y=l;
if(y!=0)x=5;
,x);
if(y==0)x=4;
elsex=5;
printf(,,\t%d\n,/,x);
x=l;
if(y<0)if(y>0)x=4;
elsex=5;
printf(〃\t%d\n”,x);
}
10、語句putcharCa'+2);的輸出結(jié)果是。
三、編程題(每小題分,共40分)
1、己知a,b,c都是1位整數(shù),求當(dāng)三位整數(shù)abc、cba的和為1333時(shí)a、b、
c的值。(本題10分)
2、輸入一個(gè)字符串和一個(gè)特定字符,在字符串中刪除從該特定字符開始的所有
字符。例如輸入字符串為〃abcdefg”,特定字符為'd',刪除后的字符串為〃abc〃;
輸入字符串為〃abcdefg〃,特定字符為'x',則輸出“特定字符不存在”。(本
題14分)
3、題目描述
萬里十佳歌手比賽終于開始了,評(píng)委席坐了N(N大于等于3,并且N小于80)個(gè)
評(píng)委,他們商量了很久,終于找出一個(gè)公正合理的評(píng)分方法。每次歌手唱完后,
每個(gè)評(píng)委自己打一個(gè)分,然后在N個(gè)評(píng)委的打分中,去掉一個(gè)最高分,一個(gè)最低
分。然后再把剩下的評(píng)委的打分求平均值~。
但是問題是他們嫌每次拿計(jì)算器按實(shí)在太煩。作為一名計(jì)算機(jī)專業(yè)學(xué)生、你用個(gè)
程序幫幫他們搞定吧。
輸入
輸入有*多組數(shù)據(jù)。每組2行,第一行是一個(gè)N,代表有N個(gè)評(píng)委。然后第二行有
N個(gè)數(shù),每個(gè)數(shù)用空格隔開,代表每個(gè)評(píng)委的打分。
當(dāng)輸入的N為0的時(shí)候結(jié)束輸入。
輸出
對(duì)于每組輸入,輸入最終這個(gè)選手的得分(小數(shù)點(diǎn)后面保留2位有效數(shù)字)。
樣例輸入
3
743634
7
16972726749688
樣例輸出
36.00
62.20(本題16分)
參考答案
一、單項(xiàng)選擇題
1、A
2、C
3、B
4、B
5、D
【解析】通常,引用一個(gè)數(shù)組元素可以用下標(biāo)法,如s[p-a]和p[i]的形式;或
指針法,如*(&a[i])的形式。在本題中如0]=0,a[9]=9,顯然a[10]超出了數(shù)
組范圍。
6、B
7、A
【解析】本題考查數(shù)組的基本知識(shí),B、C、D在C語言中都是允許的,A選項(xiàng)的
賦值是非法的。
8、C
9、C
10、D
11、C
12、A
13、D
【解析】不論P(yáng)是指向什么類型的指針變量,都可以通過強(qiáng)制類型轉(zhuǎn)換的方法
使之類型一致,強(qiáng)制類型轉(zhuǎn)換的格式為(數(shù)據(jù)類型*)。
14、B
15、A
16、C
17、C
【解析】將題目中的定義語句去掉前面的typedef和后面的CIN(分號(hào)保留),
就是一條完整的結(jié)構(gòu)體定義語句,其中struct是說明符,TT是結(jié)構(gòu)體名,大
括號(hào)里面的是結(jié)構(gòu)體成員的定義。此時(shí)要聲明該結(jié)構(gòu)體變量時(shí)需要使用struct
加結(jié)構(gòu)體名一起來聲明,structTT一起構(gòu)成一人結(jié)構(gòu)體類型,就好像字符類
型char。若只去掉前面的typedef,就是一條結(jié)構(gòu)體定義同時(shí)聲明個(gè)結(jié)構(gòu)體變量
CIN的語句,因?yàn)镃IN的前面部分是structTT的完整寫法,可以看作是
structTToC語言允許用typedef說明一種新類型名,其語法格式為:
typedef類型名標(biāo)設(shè)符;
以后就可以用該標(biāo)識(shí)符來代替被說明的類型名了。因此,當(dāng)前面存在
typedef時(shí),該語句就變成了給structTT的定義一個(gè)新的名稱CTN。所以,此
時(shí)的CIN是一個(gè)結(jié)構(gòu)體類型,它相當(dāng)于structTT,即可以和char一樣單獨(dú)用
來聲明該結(jié)構(gòu)體變量,而TT只是一個(gè)結(jié)構(gòu)體名,不能單獨(dú)用來聲明變量。所
以,4個(gè)選項(xiàng)中C符合題意。
18、D
19、C
【解析】本題程序的功能是對(duì)數(shù)組元素賦值,難點(diǎn)是對(duì)表達(dá)式4*(i-2*(i>
3))%5的分析。
20、B
【解析】在本題中,s[0].a=l,s[l].b=5,所以輸出結(jié)果為中
二、填空題
1、單引號(hào)
2、4
3、關(guān)鍵字
4、0或1
5、['循環(huán)結(jié)構(gòu)']
6、8921
7、形參
8、3
9、5|5,1
【解析】上程序中第三個(gè)if語句有嵌套,前兩個(gè)if語句沒有嵌套。前兩個(gè)if
語句根據(jù)y=l便可得知輸出結(jié)果均為5;最后一人if語句,根據(jù)條件yVO便
知不成立,后續(xù)語句無法執(zhí)行,只好輸出前一賦值語句x=l的值。
10、結(jié)果是c
三、編程題
1、^include
voidmain()
(
inta,b,c;
for(a=l;a<=9;a+-)
(
for(b=0;b<=9;b++)
{
for(c=l:c<=9;c++)
if(a*100+b*10+c+c*100+b*10+a==-333)
printf("%d,%d,%d\n,,?a,b,c);
)
)
}
2、#include<stdio.h>
intmain()
(
inti,flag=0;
chars[80],n;
gets(s);
scanf&n);
printf("特定字符是機(jī)\n〃,u);
for(i=0;s[i]!='\0';i++){
if(s[i]==n){
s[i]-\0J;
flag=l;
printf("刪除特定字符枇后的字符串是〃,n);
puts(s);
break;
}else
flag=O;
}
if(flag==O){
printf(〃特定字符不存在〃);
)
)
3、#include<stdio.h>
intmain(){
intt,n,i,max,nin,sum:
intscore[102]=(O);
while(scanf(z/%dx,&n)){
if(n==0)break;
for(i=0;i<n;++i)
scanf(〃%d〃,&score[i]);
max=-l;
min=101;
sum=0;
for(i=0;i<n;++i){
if(score[i]>max)
max=score[i];
if(score[i]<min)
min=score[i];
sum+=score[i];
}
sum一二max-min;
printf(,z%.21f\n,/,(double)sum/(n-2));
)
returnO;
歷年計(jì)算機(jī)C語言專升本題目(三)
(總分100分,考試時(shí)長(zhǎng)90分鐘)
一、單項(xiàng)選擇題(每小題2分,共40分)
1、如果要求在if后的判斷條件是a不等于0,則下列選項(xiàng)中能正確表達(dá)這一關(guān)
系的是o
A、a<>0
B、!a
C、a=0
D、a
2、若fahr為整型變量,則能正確表示以下數(shù)學(xué)式的c語言表達(dá)式是o
A、5*(fahr-32)/9
B、5/9*(fahr-32)
C、5(fahr-32)/9
D、(fahr-32)/9*5
3、有以下程序
main()
(
inti=l,j=l,k=2;
if((j++IIk++)&&i++)
printf("%d,%d,%d\n”,i,j,k);
)
執(zhí)行后輸出結(jié)果是o
A、1,1,2
B、2,2,1
C、2,2,2
D、2,2,3
4、下面程序段的輸出結(jié)果是.
x=3;
do
(
y二x一;
if(!y)
(
printf(〃*〃);
continue;
)
printf(〃#〃);
)
while(x=2);
A、##
B、##*
C、死循環(huán)
D、輸出錯(cuò)誤信息
5、在函數(shù)調(diào)用過程中,如果函數(shù)funa調(diào)用了函數(shù)funb,函數(shù)funb又調(diào)用了函數(shù)
funa,貝1o
A、稱為函數(shù)的直接遞歸調(diào)用
B,稱為函數(shù)的間接遞歸調(diào)用
C、稱為函數(shù)的循環(huán)調(diào)用
D、C語言中不允許這樣的遞歸調(diào)用
6、若有代數(shù)式|x3+lgx],則正確的c語言表達(dá)式是o
A、fabs(x*3+log10(x))
abs(pow(x,3)+loglO(x))
C>abs(pow(x,3)0)+logl0(x))
fabs(pow(x,3)0)+log10(x))
7、若有以下定義和語句:inta[10]={l,2,3,4,5,6,7,8,9,10},*ia=a;則不能
正確表示a數(shù)組元素的表達(dá)式是o
A、*ia
B、a[10]
C^*a
a[ia-a]
8、若已定義x和y是整型變量,x=2;,則表達(dá)式y(tǒng)=2.75+x/2的值是。
A、5.5
B、5
C、3
D、4.0
9、字符串〃xyz〃在內(nèi)存占用的字節(jié)數(shù)是o
A、3
B、4
C、6
D、8
10、以下數(shù)組定義中不正確的是.
A、inta[2][3];
B、intb[][3]={0,1,2,3};
C、intc[100][100]={0};
D、inta[3][]={{l,2},{1,2,3},{1,2,3,4));
11、以下關(guān)于宏的敘述中正確的是o
A、宏名必須用大寫字母表示
B、宏定義必須位于源程序中所有語句之前
C、宏替換沒有數(shù)據(jù)類型限制
D、宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間
12、整型變量x和y的值相等,且為非0值,則以下選項(xiàng)中結(jié)果為0的表達(dá)式是
A、X||Y
B、X|Y
C、X&Y
D、X"
13、下面關(guān)于形參與實(shí)參的說法,正確的是o
A、形參與實(shí)參的人數(shù)、類型、順序都應(yīng)一一對(duì)應(yīng)
B、形參與實(shí)參的人數(shù)可以不必相同,少一個(gè)多一個(gè)程序一樣執(zhí)行
C、形參與實(shí)參的類型可以不同,不影響運(yùn)算結(jié)果
D、形參與實(shí)參的類型個(gè)數(shù)相同,而順序不同,計(jì)算機(jī)可以自動(dòng)進(jìn)行匹配,所
以形參的順序無所謂,只要各種形參類型的數(shù)量與實(shí)參相同即可
14、有以下程序
structstu
(
charnum[10];
floatscore[3];
};
main()
(
structstu
s[3]={{"20021〃,90,95,85},{〃20022〃,95,80,75),{"20023",100,95,90)},2;
inti;
floatsum=0;
P=s+2;
for(i=0;i<3;i+-)sum=sum+p->score[i];
printfC'%6.2f\n”,sum);
)
程序運(yùn)行后的輸出結(jié)果是O
A、250.00
B、250
C、285.00
D、285
15、有以下程序
#include<stdio.h>
main()
(
intx=l,y=0;
if(!x)y++;
elseif(x—0)if(x)y+=2;
elsey+=3;
printfC%d\n',y);
程序運(yùn)行后的輸出結(jié)果是一。
A、0
B、2
C、1
D、3
16、下列敘述中正確的是________o
A^break語句只能用于switch語句體中
B、continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C、break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)
D、在循環(huán)體內(nèi)使月break語句和continue語句的作用相同
17、程序中有下面的說明和定義
structabc
(
intx;
chary;
)
structabcsi,s2;
則會(huì)發(fā)生的情況是。
A、編譯出錯(cuò)
B、程序?qū)㈨樌幾g、連接、執(zhí)行
C、能順利通過編譯、連接、但不能執(zhí)行
D、能順利通過編譯、但連接出錯(cuò)
18、下面程序段的輸出結(jié)果是o
#include<stdio.h>
mainO
(
floatx=l.236547;
printf("%f\n〃,(int)(x*1000+0.5)/(float;1000);
)
A、1.237000
B、輸出格式說明與輸出項(xiàng)不匹配,輸出無定值
C、1.236000
D、1.24
19、以下能正確定義數(shù)組并正確賦初值的選項(xiàng)是______。
A、intN=5,a[N][N];
B.intb[l][2]={{l},{2});
C、intc[2][]={{1,2},{3,4}};
D、intd[3][2]={{1,2),(3,4}};
20、設(shè)有以下說明語句
typedefstruct
intn;
charch[8];
)
per;
則下面敘述中正確的是o
A、PER是結(jié)構(gòu)體變量名
B、PER是結(jié)構(gòu)體類型名
C、typedefstruct是結(jié)構(gòu)體類型
struct是結(jié)構(gòu)體類型名
二、填空題(每小題2分,共20分)
1、全局的外部變量與函數(shù)體內(nèi)定義的局部變量同名時(shí),在函數(shù)體內(nèi),變
量起作用。
2、實(shí)型常量有兩種表示方法:小數(shù)形式和【1】形式。
3、inta=0;a+=(a=8);求a的最后結(jié)果
4^已知b=2,則表達(dá)式〃b+二b-=3〃的值是o
5、語句只能用在循環(huán)中,該語句的作用是結(jié)束本層本次循環(huán),繼續(xù)一下次循環(huán),前
不跳出循環(huán)。
6、下列程序段的運(yùn)行結(jié)果是____o
#definesub(x,y)x-y
main()
inta,b,s;
A=5,b=6;
S=sub(a,b);
printf(//s=%d\n/,,s);
}
7、一個(gè)C程序有且僅有一個(gè)______函數(shù)。
8、數(shù)組inta[3][3];共定義了個(gè)數(shù)組元素。
9、a=3;
a+=(a<l)?a:1;
printf(〃/d〃,a);
結(jié)果是o
10、請(qǐng)閱讀下面的程序,當(dāng)用戶從鍵盤輸入helloworld時(shí),分析程序是否能編繹
通過并正確運(yùn)行,如果不能,說明原因;
如果能,請(qǐng)寫出運(yùn)行結(jié)果。
voidmain()
(
charstr[256];
scanf();
printf();
)
hallo
三、編程題(每小題分,共40分)
1、輸入3個(gè)學(xué)生4門課的成績(jī){(60,70,65,75),(75,80,75,90),(95,75,90,65)},
計(jì)算每個(gè)學(xué)生的總分和平均成績(jī)并輸出,結(jié)果保留一位小數(shù)。(本題10分)
2、編寫程序:字符串反轉(zhuǎn),如將字符串"abc-123-xyz"反轉(zhuǎn)為〃zyx-321-cba〃。
(本題14分)
3、編寫程序:使用結(jié)構(gòu)體,創(chuàng)建一個(gè)長(zhǎng)度為n的鏈表。(本題16分)
參考答案
一、單項(xiàng)選擇題
1、D
【解析】if判斷條件的值只能是0或非0,if3)就是if(!0)的意思。
2、A
3、C
【解析】首先計(jì)算if語句后面的表達(dá)式值,先計(jì)算運(yùn)算符&&前面括號(hào)里的
“I”運(yùn)算。在“I”運(yùn)算中先計(jì)算j++,值為:(j的值為2),為真,后面的
k++將不再計(jì)算,k的值依舊為2。計(jì)算&&后面的表達(dá)式i++,值為l(i的值變
為2)。整個(gè)表達(dá)式的值為真,所以執(zhí)行后面的輸出語句,最后輸出的i、j和k
的值為2、2和2。
4、C
5、B
【解析】在調(diào)用一個(gè)函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為
函數(shù)的遞歸調(diào)用。本題描述的函數(shù)調(diào)用屬于函數(shù)的間接遞歸調(diào)用。
6、D
7、B
8、C
9、B
【解析】字符串中的每個(gè)字符占1個(gè)字節(jié),但C程序在存儲(chǔ)字符串時(shí),要在最
后一個(gè)有效字符后面接上1個(gè)字符串結(jié)束的標(biāo)記符'\0'。這樣,存儲(chǔ)字符串常
量”XyZ”需要4個(gè)字節(jié)。所以解答是B。
10、D
11、C
12、D
【解析】“II”為或運(yùn)算符,當(dāng)其左右表達(dá)式中只要一個(gè)為非零則整個(gè)表達(dá)式
的值1。I是按位或,&是按位與,”是按位異或,這三位運(yùn)算符是按值的二進(jìn)
制位來比較的。
13、A
【解析】形參、實(shí)參個(gè)數(shù)類型、數(shù)量、順序應(yīng)相同,因?yàn)轭愋娃D(zhuǎn)換都是有條件
的,如果浮點(diǎn)型變量向指針型變量轉(zhuǎn)換就是不可的。
14、C
15、A
【解析】Qx)為假,然后判斷(x=0),為假,最后就執(zhí)行輸出語句,y的值仍
為初始值,答案選擇A。
16、C
17、A
18、A
【解析】本題中,(int)(x*1000+中5)的結(jié)果為1237,(float)1000是將1000
強(qiáng)制轉(zhuǎn)換成float類型;整個(gè)表達(dá)式(int)(x*1000+0.5)/(float)1000的結(jié)果
為L(zhǎng)237000,再以實(shí)數(shù)(6位小數(shù))形式輸出.
19、D
【解析】數(shù)組維數(shù)必須為常量;數(shù)組為一行兩列,而兩行一列;數(shù)組
定義錯(cuò)誤,數(shù)組定義時(shí)列數(shù)必須寫明,而行數(shù)可以缺省;D.表示正確,相當(dāng)于
{{1,2},{3,4},{0,0})
20、B
二、填空題
1、函數(shù)體內(nèi)定義的局部
2、指數(shù)
3、16
4、-2
5、continue
6、s=-l
7、main
8、9
9、4
10、|〃%s",str|str
【解析】輸入hell。world時(shí),中間的空格對(duì)scanf()函數(shù)來說是終止符,后
面的內(nèi)容無法讀取。
三、編程題
1、^include
voidmain()
(
inta[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}};
inti,j;
floataverage,sum=0.0;
printf(〃三個(gè)學(xué)生的總分和平均成績(jī)依次為:\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>
voidreverse(char*s)
(
//獲取字符串長(zhǎng)度
intlen=0;
cliax*p=s;
while(*p!=0)
(
len++;
p++;
//交換...
inti=0;
charc;
while(i<=len/2-1)
(
c=*(s+i);
*(s+i)=*(s+len-1-i);
*(s+len-1-i)=c;
i++;
}
)
intmain()
(
chars[]=〃abcT23-xyz〃;
printf(/z,%sJ=>\nz/,s);
reverse(s);//反轉(zhuǎn)字符串
printf("'%s''n〃,s);
return0;
)
【解析】質(zhì)數(shù)(primenumber)又稱素?cái)?shù),有無限個(gè)。一個(gè)大于1的自然數(shù),
除了1和它本身外,不能被其他自然數(shù)整除。
3、#iiiulude<bldio.h>
#include<stdlib.h>
#include<malloc.h>
typedefstructLNode{
intdata;
structLNode*next;
}LNode,*LinkList;
LinkListCrcatcListlintn);
voidprint(LinkListh);
intmain()
(
LinkListHead=NULL;
intn;
scanf(〃%d〃,&n);
Head=CreateList:n);
printf(〃剛剛建立的各個(gè)鏈表元素的值為:\n〃);
print(Head);
printf('\n\n〃);
system("pause");
return0;
)
LinkListCreateListlintn)
(
LinkListL,p,q;
inti;
L=(LNode*)uialloc(sizeof(LNode));
if(!L)return0;
L->next=NULL;
q二L;
for(1=1;iV=n;i-+)
p=(LinkList}malloc(sizeof(LNode));
printf(〃請(qǐng)輸入第%d個(gè)元素的值:〃,i);
scanf(z/%d/z,&(p->data));
p->next=NULL;
q->next=p;
q二P;
)
returnL;
)
voidprint(LinkListh)
(
l.inkl.ist.p=h->npxt:
while(p!=NULL){
printfC^dp->data);
p=p->next;
)
}
歷年計(jì)算機(jī)C語言專升本題目(四)
(總分100分,考試時(shí)長(zhǎng)90分鐘)
一、單項(xiàng)選擇題(每小題2分,共40分)
1、下面程序段的功能是
ttinclude<stdio.h>
main()
{
charsi;
sl=putc(getc(stdin),stdout);
)
A、從鍵盤輸入一人字符給字符變量si
B、從鍵盤輸入一人字符,然后再輸出到屏幕
C、從鍵盤輸入一人字符,然后在輸出到屏幕的同時(shí)賦給變量si
D、在屏幕上愉出stdout的值
2、用語句scanf(〃%c%c%c〃,&cl,&c2,&c3)輸入〃a,b,c〃時(shí),變量cl、c2、c3的
值分別為()
A、'a','b','c'
C、'a','b'
D、a,,c
3、switch語句中表達(dá)式(expression)的值不允許用的類型是。
A、byle
B、int
C、boolean
D、char
4、設(shè)有循環(huán)語句〃for:i=l;i>0;i++)i++;〃,其循環(huán)執(zhí)行的次數(shù)是o
A、無限
B、0
C、3
D、4
5、下面函數(shù)的功能是
char*fun(char*str7char*str2){
while((*str1)&&(*str2++=*strl++));
returnstr2;
)
A、求字符串的長(zhǎng)度
B、比較兩個(gè)字符串的大小
C、將字符串strl復(fù)制到字符串str2中
D、將字符串strl接續(xù)到字符串str2中
6、若有定義語句:inta[4][10],*p,*q[4];且0<=iV4,則錯(cuò)誤的賦值是
A、p=a
B、q[i]=a[i]
C、p=a[i]
D、p=&a[2][l]
7、定義如下變量和數(shù)組:inti,x[3][3]={1,2,3,4,5,6,7,8,9
};則下面語句for(i=0;i<3;i++)printf(〃%d",x[i][2-i]);的輸出結(jié)果是
A、159
B、147
C、357
D>369
8、c語言中,int型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是________o
A、ASCII碼
B、補(bǔ)碼
C、反碼
D、原碼
9、下面選項(xiàng)中合法的字符常量是。
A、〃X〃
B、'X'
C、'abc'
D、'\'
10、設(shè)有如下程序段chars[20]=〃bejing〃,*p;p=s;則執(zhí)行p=s;語句后,以
下敘述正確的是________O
A、可以用*p表示s[0]
B、s數(shù)組中元素的個(gè)數(shù)和p所指字符串長(zhǎng)度相等
C、s和p都是指針變量
D、數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等
11、以下敘述中錯(cuò)誤的是________。
A、在一個(gè)程序中,每個(gè)模塊均可以獨(dú)立編譯運(yùn)行
B、程序“模塊化”有利于任務(wù)的分解簡(jiǎn)化
C、允許對(duì)函數(shù)單獨(dú)進(jìn)行編譯,是C語言實(shí)現(xiàn)“模塊化”的基礎(chǔ)
D、采用模塊化結(jié)構(gòu),可以提高編程效率
12、下列是多行注釋的符號(hào)是o
A、//
B、/
C、[*
D、/**/
13、計(jì)算斐波那契數(shù)列第n項(xiàng)的函數(shù)定義如下:intfib(intn)
if(n==0)returnl;
elseif(n==l)
return2;
else
returnfib(n-l)+fib(n-2);
}
若執(zhí)行函數(shù)調(diào)用表達(dá)式fib(2),函數(shù)fib被調(diào)用的次數(shù)是
A、1
B、2
C、3
D、4
14、設(shè)有以下說明語句:
typeclefstructstu
(
inta;
floatb;
)
stutype;
則下面敘述中錯(cuò)誤的是O
A、struct是結(jié)構(gòu)類型的關(guān)鍵字
structstu是用戶定義的結(jié)構(gòu)類型
C、a和b都是結(jié)構(gòu)成員名
D、stutype是用戶定義的結(jié)構(gòu)體變量名
15、請(qǐng)閱讀下面的程序,選擇正確的輸出結(jié)果。()
voidmain()
(
printf(〃%d〃,null);
)
A、0
B、變量無定義
C、-1
D、1
16、下列for循環(huán)語句的執(zhí)行次數(shù)是。
for(intx=0,y=0;(y!=0)&&(x<4);x++)
A、無限次
B、一次也不執(zhí)行
C、執(zhí)行一次
D、執(zhí)行三次
17、有以下程序
structstu
charname[10];
intnum;
floattotalscore;
};
voidf(structstu*p)
(
structstus[2]={{〃sundan〃,20044,550],{"penghua”,20045,537}},
*q=s;
++P;
++q;
*p=*q;
)
main()
(
structstus[3]={{"yangsan”,20041,703),{"lisiguo”,20042,580});
f(s);
printf(z/%s%d%3.0f\n〃,s[l].name,s[l].num,s[l].totalscorc):
)
程序運(yùn)行后的輸出結(jié)果是o
A、SunDan20044550
B、Penghua20045537
C、LiSiGuo20042580
D、SunDan20041703
18、下述程序段的執(zhí)行結(jié)果是o
ttinclude<stdio.h>
voidmain(){
intx;
for(x=l;x<=100;x++)if(++x%3—0)if(++x%4==0)if(++x%7==0)
printfx);
)
A、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 草牧場(chǎng)承包合同
- 地板集中采購(gòu)合同范本
- 單位 燈具 供貨合同范本
- 餐飲排水排污合同范本
- 運(yùn)輸管理信息系統(tǒng)
- 畢節(jié)項(xiàng)目可行性研究報(bào)告(范文參考)
- 問題處理分析流程
- 針灸科護(hù)理病例討論
- 2023-2024學(xué)年江蘇省西安交大蘇州附屬中學(xué)八年級(jí)上學(xué)期英語12月月考卷及答案
- 銀行行業(yè)洞察報(bào)告
- 新版《土地開發(fā)整理項(xiàng)目預(yù)算定額標(biāo)準(zhǔn)》講解
- 烏靈膠囊幻燈課件
- DBT29-265-2019 天津市市政基礎(chǔ)設(shè)施工程資料管理規(guī)程
- -城鄉(xiāng)規(guī)劃法-最新課件
- DB44∕T 1188-2013 電動(dòng)汽車充電站安全要求
- DB32T 4013-2021 第三方社會(huì)穩(wěn)定風(fēng)險(xiǎn)評(píng)估技術(shù)規(guī)范
- 環(huán)網(wǎng)柜出廠檢驗(yàn)規(guī)范標(biāo)準(zhǔn)
- 人教統(tǒng)編版高中語文必修下冊(cè)第八單元(單元總結(jié))
- 第三章衛(wèi)星運(yùn)動(dòng)基礎(chǔ)與GPS衛(wèi)星星歷
- 客戶信用等級(jí)評(píng)價(jià)表
- 中國(guó)各省份分地市地圖(矢量圖)
評(píng)論
0/150
提交評(píng)論