版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
廣西藝術(shù)學(xué)院歷年C語言選擇題(一)
考試方式:【閉卷】考試時間:【90分鐘】總分:【100分】
一、理論基礎(chǔ)(共20題,每小題1分,共10分)
1、設(shè)c語言中,int類型數(shù)據(jù)占2個字節(jié),則long類型數(shù)據(jù)占一
A、1個字節(jié)
B、2個字節(jié)
C、4個字節(jié)
D、8個字節(jié)
【答案】C
2、以下選項中不正確的整型常量是o
A、12L
B、-10
C、12
D、2,900
【答案】D
3、在以下給出的表達(dá)式中,與while()中的(e)不等價的表達(dá)式是
A、(!E==0)
B、(E>0IIE<0)
C、(E==0)
D、(E!=0)
【答案】C
4、下列關(guān)于c語言的敘述錯誤的是o
A、英文字母大小寫不加以區(qū)分
B、不同類型的變量可以出現(xiàn)在同一個表達(dá)式中
C、在賦值表達(dá)式中賦值號兩邊的類型可以不同
D、某些運算符在不同的場合可以有不同的含義
【答案】A
5、下列是多行注釋的符號是o
A、//
B、/
C、/*
D、/**/
【答案】D
【解析】單行注釋的符號為〃,多行注釋的符號為/**/。
6、下列關(guān)于自動類型轉(zhuǎn)換的說法中,正確的是o
A、操作數(shù)1是byte類型,操作數(shù)2是long類型,結(jié)果為byte類型
B、操作數(shù)1是byte類型,操作數(shù)2是long類型,結(jié)果為long類型
C、操作數(shù)1是long類型,操作數(shù)2是byte類型,結(jié)果是byte類型
D、操作數(shù)1是long類型,操作數(shù)2是byte類型,結(jié)果是long類型
【答案】B
【解析】操作數(shù)1為byte類型,操作數(shù)2為long類型,則自動轉(zhuǎn)換為long類
型,系統(tǒng)自動將短的類型轉(zhuǎn)換為長的類型,但是反過來就不可以。
7、若有表達(dá)式(w)(—x):(++y),則其中與w等價的表達(dá)式是o
A、w==l
B、w==0
C、w!=l
D,w!=0
【答案】D
【解析】條件運算符組成條件表達(dá)式的一般形式為:表達(dá)式1表達(dá)式2:表達(dá)
式3。其求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2的值作為條件表
達(dá)式的值,否則以表達(dá)式3的值作為條件表達(dá)式的值。本題中需要獲得表達(dá)式
w的邏輯值,即w是否為0,不為0則為真,為0則為假。因此正確答案為D)
8、若有說明語句:inta,b,c,*d=&c;則能正確從鍵盤讀入三個整數(shù)分別賦給變
量a、b、c的語句是o
A、scanf("%d%d%d",&a,&b,d);
B、scanf("%d%d%d",&a,&b,&d);
C、scanf("%d%d%d",a,b,d);
D、scanf("%d%d%d",a,b,*d);
【答案】A
9、對于數(shù)學(xué)式x/2a,下面正確的c語言表達(dá)式是-
A、sqr(x)/2a
B、sqr(x)/2*a
C、sqrt(x)/(2*a)
D、sqrt(x)/2*a
【答案】D
10、以下不合法的數(shù)值常量是o
A、Oil
B、lei
C、8.0E0.5
D、Oxabcd
【答案】C
11、設(shè)變量已正確定義,則以下能正確計算f=n!的程序是。
A、f=0;
for(i=l;i<=n:i+十)f*=i;
B、f=l
for(i=l:i
C、f=l:
for(i=n;i>l;i十+)f*=i;
D、f=l:
for(i=n;j>=2;j—)f*=i;
【答案】D
12、下列判斷正確的是o
A、chara="ABCD":等價于char*a;*a="ABCD":
B、charstr[10]={"ABCD"):等價于charstr[10];str[]={"ABCD");
C、char*s="ABCD":等價于chars;*s="ABCD";
D、charc[5]="ABCD",d[5]="ABCD":等價于charc[5]-d[5]="ABCD";
【答案】D
13、表達(dá)式的值為0的是o
A、5/5%5
B、5>2
C、!4
D、3>2&&5-6<7
【答案】C
14、設(shè)x=015,則x=x*017的值是o
A、00001111
B、11111101
C、00000010
D、11000000
【答案】c
15、若變量c定義為float型變量,能給變量c正確賦值的語句是o
A、scanf("%f",c)
B、scanf("%8.4f",&c)
C、scanf("%d",&c)
D、scanf("%f",&c)
【答案】D
16、下列定義變量的語句中錯誤的是o
A、int_int;
B、doubleint_;
C>charFor;
D、floatUS$;
【答案】D
【解析】本題考查C語言中標(biāo)識符的概念。用戶標(biāo)識符由字母、數(shù)字和下劃線
組成,并且第一個字符必須為字母或下劃線,并且不能與C語言關(guān)鍵字相同。
選項D)所定義的浮點型變量名中包含了字符'$',不屬于上述范疇,因此選項
D)是錯誤的定義語句。
17、指針x指向的整型變量值為25,則"printf(“猊l\n",++*x);”
的輸出是
A、23
B、24
C、25
D、26
【答案】D
18、運行下述程序段后,i值為4的是o
A、inti=l,j=O;
B、inti=l,j=l;I=j=((i=3)++);i+=i+=2;
C、inti==O,j=O;
D、inti=0,j=l;15(i=2,i+(j=2));(j==l)?i+=3:i=2;
【答案】B
19、設(shè)x、y、z和k都是int型變量,則執(zhí)行表達(dá)式:x=(y=4,z=16,k=32)后,x
的值為O
A、4
B、16
C、32
D、52
【答案】C
20、若有定義"floata=25,b,*p=&b;",則下列對賦值語句"*p=a;"和"p=&a;"的
正確解釋為()o
A、兩個語句都是將變量a的值賦予變量P
B、*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P
C、*p=a是將變量a的值賦予變量b,而&a是使P指向變量a
D、兩個語句都是使P指向變量a
【答案】C
二、控制結(jié)構(gòu)(共10題,每小題1分,共10分)
1、當(dāng)從鍵盤上輸入字符"12134211"下面程序的輸出結(jié)果是.
main()
chars;
intv1=0,v2=0,v3=0,v4=0,k;
for(k=0;k<=7;k++)
scanf("%c",&s);
switch(s)
(
default:v4++;
caseT:vl++;
case’3':v3++;
case'2':v2++;
)
)
printf(nvl=%d,v2=%d,v3=%d,v4=%d\nn,vl,v2,v3,v4);
}
A、vl=4,v2=2,v3=l,v4=l
B、v1=4,v2=9,v3=3,v4=1
C、v1=5,v2=8,v3=6,v4=l
D、v1=8,v2=8,v3=8,v4=8
【答案】C
2、當(dāng)把以下四個表達(dá)式用作if語句的控制表達(dá)式時,有一個選項與其它三個選
項含義不同,這個選項是o
A、k%2
B、k%2==l
C、(k%2)!=0
D、!k%2==l
【答案】D
3、若a是數(shù)值類型,則邏輯表達(dá)式(a==l)|I(a!=l)的值是。
A、1
B、0
C、2
D、不知道a的值,不能確定
【答案】A
4、執(zhí)行下列程序段后,m的值是.
intw=2,x=3,y=4,z=5,m;
m=(w<x)?w:x;
m=(m<y)?m:y;
m=(m<z)?m:z;
A、4
B、3
C、5
D、2
【答案】D
5、若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
【答案】D
6、設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語句:if(a<b)
if(c==d)y=0;elsey=l;該語句所表示的含義是,
A、y=0,a
y=l,a?b
B,y=0,a
y=l,a?b且cWd
C、y=0,a
y=l,aVB且CWD
D、y=0,a
y=l,cfd
【答案】C
7、選擇結(jié)構(gòu)中的條件與循環(huán)結(jié)構(gòu)中循環(huán)成立的條件,在寫法上可以是任一表達(dá)
式,但其值只能被判斷為“真”或“假”。哪個數(shù)作為邏輯“假”值()。
A、-1
B、1
C、非零的數(shù)
D、0
【答案】D
8、下列敘述中正確的是o
A、程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)
B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)
C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量
D、以上三種說法都不對
【答案】A
【解析】程序執(zhí)行的實際計算工作量不僅與程序的控制結(jié)構(gòu)有一定的關(guān)系,還
與處理的數(shù)據(jù)量有關(guān),與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)。所以,選項A正確,選項
B和C錯誤。所以,本題的正確答案為A。
9、c語言的if語句中,用作判斷的表達(dá)式為—
A、任意表達(dá)式
B、邏輯表達(dá)式
C、關(guān)系表達(dá)式
D、算術(shù)表達(dá)式
【答案】A
10、if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于"表達(dá)式"值的敘述中正確
的是O
A、必須是邏輯值
B、必須是整數(shù)值
C、必須是正數(shù)
D、可以是任意合法的數(shù)值
【答案】D
三、循環(huán)結(jié)構(gòu)(共10題,每小題1分,共10分)
1、下面的程序
main()
(
intx=3;
do
(
printf("%d\n",x-=2);
)
while(!(-x));
)
A、輸出的是1
B、輸出的是1和-2
C、輸出的是3和0
D、是死循環(huán)
【答案】B
2、程序段如下:則以下說法中正確的是:
intk=5;
do
k一;
)
while(k<=0);
A、循環(huán)執(zhí)行5次
B、循環(huán)是無限循環(huán)
C、循環(huán)體語句一次也不執(zhí)行
D、循環(huán)體語句執(zhí)行一次
【答案】D
3、執(zhí)行以下循環(huán)語句時,下列說法正確的是ox=-1;
do
(
X=X*X;
)
while(x==0);
A、循環(huán)體將執(zhí)行一次
B、循環(huán)體將執(zhí)行兩次
C、循環(huán)體將執(zhí)行無限次
D、系統(tǒng)將提示有語法錯誤
【答案】A
4、以下for循環(huán)是ofor(x=0,y=O;(y!=123)&&(x<4);x++)
A、無限循環(huán)
B、循環(huán)次數(shù)不定
C、執(zhí)行4次
D、執(zhí)行3次
【答案】C
5、下面關(guān)于break語句的描述中,不正確的是。
A、break可以用于循環(huán)體內(nèi)
B、break語句可以在for循環(huán)語句中出現(xiàn)多次
C、break語句可以在switch語句中出現(xiàn)多次
D、break語句可用于if條件判斷語句內(nèi)
【答案】D
【解析】本題考查的是break語句的使用。break可以結(jié)束switch語句和for
循環(huán)語句,但是不能使用在條件判斷語句內(nèi)。
6、設(shè)有循環(huán)語句"for(i=l;i>0;i++)i++;",其循環(huán)執(zhí)行的次數(shù)是o
A、無限
B、0
C、3
D、4
【答案】A
7、有以下程序
#include<stdio.h>
intmain()
(
intm[][3]={1,4,7,2,5,8,3,6,9);
inti,j,k=2;
for(i=O;i<3;i++)printf("%2d",m[k][i]);
)
執(zhí)行后輸出結(jié)果是o
A、456
B、258
C、369
D、789
【答案】C
【解析】變量k的初值為2,循環(huán)執(zhí)行了3次,分別輸出和
m[2][2L其值分別為3,6,9。
8、執(zhí)行下列語句后,r的值是
charch='a';
intr=6;
switch(ch+5){
case'a':r=r+3;
case'b':r=r+5;
case'c':r=r+5;
break;
default:r/=2;
)
A、19
B、3
C、11
D、7
【答案】B
【解析】考查switch語句用法。default語句是當(dāng)表達(dá)式的值與任一case子
句的值都不匹配時,程序執(zhí)行default后面的語句。在本題中,判斷
switch(ch+5),其實等價于switch('F'),而在case語句中,沒有一個能匹配
的,所以直接執(zhí)行default:r/=2°
9、下列程序的運行結(jié)果是
#include<stdio.h>
main()
intx=5,a=l,b=2,c=5,d=0;
if(a<b)if(b!=3)if(!c)x=l;
elseif(d)x=l;
elsex=-l;
printf("%d",x);
)
A、-1
B、0
C、1
D、不確定的值
【答案】A
【解析】本題考查ifelse語句。第1個if語句,先判斷條件,發(fā)現(xiàn)aVb條
件成立,執(zhí)行下列的語句;第2個汀語句,先判斷條件,發(fā)現(xiàn)b!=3條件成立,
執(zhí)行下列的語句;第3個汀語句,先判斷條件,c=5,則!c條件不成立,執(zhí)行
與其配對的else語句:第4個if語句,先判斷條件,d=0,條件不成立,則
x=-l,結(jié)束循環(huán)。
10、設(shè)i和x都是int類型,則for循環(huán)語句。for(i=0,x=0;iV
=9&&x!=876;i++)scanf("%d",&x);
A、最多執(zhí)行10次
B、最多執(zhí)行9次
C、是無限循環(huán)
D、循環(huán)體一次也不執(zhí)行
【答案】A
四、數(shù)組/指針數(shù)組(共10題,每小題1分,共10分)
1、若有下面的程序片段:
int[12]={0},*p[3],**PP,i;
for(i=0;i<3;i)p[i]=&a[i*4];
PP=P
則對數(shù)組元素的錯誤引用是。
A、pp[0][1]
B、a[10]
C、p[3][l]
D、*(*(p+2)+2)
【答案】C
【解析】考查指向數(shù)組的指針。[解題要點]本題綜合考查一維數(shù)組和多維數(shù)組
指針變量的表示方法。在C語言中,引用數(shù)組元素的方法有兩種,即:下標(biāo)法
和指針法。下標(biāo)法如a[下形式;指針法如*(a+i)或*(p+l)。其中a是數(shù)組名,
P是指向數(shù)組的指針變量,其初值p=a0再如*(*(p+2)+2)是a[2][2]的值,注
意語句中指針型數(shù)組的書寫格式,不能寫成“(*數(shù)組名)[長度]”,因為這是定
義指向含有“長度”個元素的一維數(shù)組的指針變量。例如有定義語句“inta,
b,c,c,*P[3]={&a,&b,&c};",它定義了一個名為p的指針型數(shù)組,其3
個元素p[0],P[1],p[2]分別指向B個整型變量a,b,Co[考點鏈接]數(shù)組
元素的引用方法。
2、在c語言中對于實型數(shù)組,其每個數(shù)組元素的類型是o
A、實型
B、整型
C、可以為任何類型
D、不確定
【答案】A
3、若有下列定義,則對a數(shù)組元素的正確引用是ointa[5],*p=a;
A、*(p+5)
B、*p+2
C>*(a+2)
D、*&a[5]
【答案】C
4、以下對一維數(shù)組a的正確說明是o
A、intn;scanf;inta[n];
B、intn=10,a[n];
C、inta(10);
D、ttdefineSIZElOinta[SIZE];
【答案】D
5、已知英文字母a的十進(jìn)制ascii碼值為65,那么a的十進(jìn)制ascii碼值為
A、98
B、100
C、89
D、97
【答案】D
【解析】在ASCH碼表中,大、小寫英文字母是分組排序安排在不同位置的,
并且小寫英文字母的碼值比對應(yīng)的大寫英文字母的碼值大32。所以,當(dāng)知道A
的ASCII碼值是65后,字符a的碼值為65+32=97o
6、有如下說明:inta[10]=l,2,3,4,5,6,7,8,9,10,*p=a;則數(shù)值為9的表達(dá)
式是o
A、*p+9
B、*(p+8)
C、*p+=9
D、p+8
【答案】B
【解析】當(dāng)指針指向數(shù)組的首地址時,數(shù)組內(nèi)各元素地址為p+n(數(shù)組下標(biāo)從0
開始到n-1結(jié)束),n為數(shù)組下標(biāo),取數(shù)組元素值為*(p+n)。
7、若已定義實參數(shù)組inta[3]L4]={2,4,6,8,10};則在被調(diào)用函數(shù)f的
下述定義中,對形參數(shù)組b定義正確的選項是.
A、f(intb[][6])
B、f(b)intb[][4];
C、f(intb[3][]);
D、f(b)intb[4][5];
【答案】B
8、以下數(shù)組定義中錯誤的是o
A、intx[][3]={0};
B、intx[2][3]={{1,2},{3,4},{5,6}};
C、intx[][3]={{1,2,3),{4,5,6)};
D、intx[2][3]={1,2,3,4,5,6};
【答案】B
9、若二維數(shù)組a有m列,則計算任一元素在數(shù)組中位貉的公式為(假
設(shè)a[0][0]位于數(shù)組的第一個位貉上)..0
A、i*m+j
B、j*m+i
C、
D、
【答案】D
10、下列程序的運行結(jié)果是_____。
main()
(
inta[6],i;
for(i=2;i<6;i++)
a[i]=4*(i-2*(i>3))%5;
printf(M%2dn,aEi]);
)
A、2323
B、1212
C、3232
D,2222
【答案】C
【解析】本題程序的功能是對數(shù)組元素賦值,難點是對表達(dá)式4*(i-2*(i>
3))%5的分析。
五、字符串/字符串指針(共10題,每小題1分,共10分)
1、以下不能正確進(jìn)行字符串賦初值的語句是O
A、charstr[5]="good!";
B、charstrL]="good!";
C、char*str="good!";
D、charstr[5]={'g','o','o','d'};
【答案】A
2、在c語言中,以作為字符串結(jié)束標(biāo)志
A、,\n'
B、,,
C、'0'
D、'\0'
【答案】D
3、設(shè)有兩個字符串p和q,其中q是p的子串,把q在p中首次出現(xiàn)的位置作為
子串q在p中位置的算法稱為(43)o
A、求子串
B、匹配
C、連接
D、求串長
【答案】B
【解析】本題考查對字符串進(jìn)行處理的算法。
求子串是在一個主字符串中按一定的規(guī)則取出任意個連續(xù)的字符得到一個新
串°
匹配是指求一個字符串是另一個字符串的子串,并返回子串首次出現(xiàn)的位
置。
連接是指把一個字符串的內(nèi)容連接到另一個足夠大的字符串的末尾。
求串長就是統(tǒng)計字符串中有效字符的個數(shù)。
4、下列字符串中,不可以用作c標(biāo)識符的是o
A、y_2006
B、_FEST_H
C、Return
D,switch
【答案】D
【解析】在C中,變量標(biāo)識符必須是以大小寫字母、下畫線開始,由數(shù)字或者
字母下畫線等組成的一個字符串,其中C++關(guān)鍵字不能作為標(biāo)識符,不能包含
-、+、*、/等運算符號。C++變量區(qū)分大小寫,所以Retrun不是關(guān)鍵字,而是
一個合法變量;swith為關(guān)鍵字,所以不能定義為標(biāo)示符。
5、下列字符串是標(biāo)識符的是:。
A、_HJ
B、9_student
C、long
D、LINE1
【答案】A
6、以下選項中關(guān)于c語言常量的敘述錯誤的是o
A、所謂常量,是指在程序運行過程中,其值不能被改變的量
B、常量分為整型常量、實型常量、字符常量和字符串常量
C、常量可分為數(shù)值型常量和非數(shù)值常量
D、經(jīng)常被使用的變量可以定義成常量
【答案】D
7、以下選項中能表示合法常量的是o
A、整數(shù):1,200
B、實數(shù):1.5E2.0
C、字符斜杠:"\"
D、字符串:"\007"
【答案】D
8、以下能將字符串,youareluck!正確讀入的語句組是。
A、chars[80];scanf("%s",s);
B、char*s:scanf("%s",s);
C、chars[80];gets(s);
D、char*s;gets(3);
【答案】C
9、下列選項中c語言中不合法的字符串常量的是o
A,"\121"
B、'y'
C、"\n\n"
D、"ABCD\x6d\
【答案】B
【解析】字符串常量是由雙引號括起來的一串字符,其中的雙引號不可缺少。
由此可知,選項A)、C)、D)都是合法的字符串常量,而選B)是一個字符常量。
10、有以下程序:
#include<string.h>
main()
(
char*p="abcde\0ghjik\0";
printf("%d\n",strlen(p));
)
程序運行后的輸出結(jié)果是o
A,12
B、15
C、6
D、5
【答案】D
【解析】字符'\0'為字符串結(jié)束標(biāo)識位。
六、函數(shù)/函數(shù)指針(共10題,每小題1分,共10分)
1、有以下程序:
voidfun(int*a,inti,intj){
intt;
if(i<j)t=aEi];
a[i]=a[j];
a[j]=t;
fun(a,++i,-j);
)
main(){
inta[]=l,2,3,4,5,6,i;
fun(a,0,5);
for(i=0;i<6;i++)printf("%d;
)
執(zhí)行后的輸出結(jié)果是。
A,654321
B、432156
C、456123
D、123456
【答案】A
【解析】本題考查指針變量作函數(shù)形參的問題。指針變量作函數(shù)的形參,實現(xiàn)
的是地址傳遞,形參的改變可以影響實參。fun由數(shù)的功能是將a所指數(shù)組中
的內(nèi)容逆置。在main函數(shù)中調(diào)用fun函數(shù)后,實參數(shù)組s中元素的值變?yōu)椋?/p>
a[0]=6、a[l]=5、a[2]=4、a[3]=3、a[4]=2、a[5]=l。
2、以下各語句或語句組中,正確的操作是o
A、chars[3]="abcde";
B、char*s;gets(s);
C、char*s;s="abcde";
D、chars[5];scanf("%s",&s);
【答案】C
【解析】字符數(shù)組可以使用字符串進(jìn)行初始化,但數(shù)組長度應(yīng)足夠容納該字符
串,選項A不滿足要求。
gets。函數(shù)用于讀取字符串,并將字符串保存到參數(shù)代表的空間中,選項B
中,只定義了字符指針,沒有空間存放字符串信息。
選項D定義了長度為5的字符數(shù)組,數(shù)組名稱代表數(shù)組的首地址,使用
scanf()讀取字符串時,參數(shù)為數(shù)組名即可。
3、已定義以下函數(shù)intfun(int*p)
(
return*p;
)
則fun函數(shù)返回值足
A、不確定的值
B、一個整數(shù)
C、形參p中存放的值
D、形參p的地址值
【答案】D
4、當(dāng)接受用戶輸入的含有空格的字符串時,應(yīng)使用函數(shù).
A、gets()
B、getchar()
C、scanf()
D、printf()
【答案】A
5、以下敘述中錯誤的是o
A、在函數(shù)外定義的變量是全局變量
B、全局變量和局部變量不能同名
C、在函數(shù)內(nèi)定義的變量是局部變量
D、函數(shù)的形參是局部變量
【答案】B
【解析】在函數(shù)外定義的變量是全局變量;在函數(shù)內(nèi)定義的變量是局部變量;函
數(shù)的形參是局部變量;若全局變量和局部變量同名,則在該函數(shù)內(nèi),此全局變量會
被屏蔽,在該函數(shù)內(nèi)訪問的是局部變量,與同名的全局變量不發(fā)生任何關(guān)系。本
題答案為B選項。
6、下面函數(shù)的功能是.0a(sl,s2)charsl[],s2[];
while(s2++=sl++);
A、字符串比較
B、字符串復(fù)制
C、字符串鏈接
D、字符串反向
【答案】B
7、c語言函數(shù)的隱含存儲類別是o
A、static
B、auto
C、register
D、extern
【答案】D
8、以下程序中函數(shù)f的功能是:當(dāng)flag為1時,進(jìn)行由小到大排序;
當(dāng)flag為0時,進(jìn)行由大到小排序。
voidf(intb[],intn,intflag)
(
inti,j,t;
for(i=0;i<n-l;i++)
for(j=i+l;j<n;j++)
if(flag?b[i]>b[j]:b[i]<b[j])
(
t=b[i];
b[i]=b[j];
b[j]=t;
main()
{
inta[10]={5,4,3,2,1,6,7,8,9,10},i;
f(&a[2],5,0);
f(a,5,l);
for(i=0;i<10;i++)printf("%d,",a[i]);
)
程序運行后的輸出結(jié)果是_____。
A、1,2,3,4,5,6,7,8,9,10,
B、3,4,5,6,7,2,1,8,9,10,
C、5,4,3,2,1,6,7,8,9,10,
D、10,9,8,7,6,5,4,3,2,1,
【答案】B
9、函數(shù)pi的功能是根據(jù)以下近似公式求n值:
(JI*n)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)請?zhí)羁?,完成求口的功能?/p>
#include<math.h>
main()
(
doubles=0.0;
longinti,n;
scanf("%ld",&n);
for(i=l;i<=n;i++)s=s+;
s=(sqrt(6*s));
printf("s=%e",s);
)
A、l/i*i
B、1.0/i*i
C、1.0/(i*i)
D、1.0/(n*n)
【答案】C
10、c語言中函數(shù)返回值的類型是由決定的.
A、函數(shù)定義時指定的類型
B、retuiri語句中的表達(dá)式類型
C、調(diào)用該函數(shù)時的實參的數(shù)據(jù)類型
D、形參的數(shù)據(jù)類型
【答案】A
七、指針(共10題,每小題1分,共10分)
1、每個c程序中都必須有且僅有一個o
A、類
B、預(yù)處理命令
C、主函數(shù)
D、語句
【答案】C
【解析】每個C程序中都要有且僅有一個主函數(shù),該函數(shù)是程序的入口,而語
句、預(yù)處理命令和函數(shù)及類在程序中都可以有多個。
2、以下能正確定義二維數(shù)組的是o
A、inta[][3]={l,2,3,4,5,6};
B、inta[][3]={2*3};
C、inta[][3]={};
D、inta[2][3]={{1},{2},{3,4}};
【答案】A
3、有以下程序(strcpy為字符串復(fù)制函數(shù),strcat為字符串連接函數(shù)):
main()
{
chara[10]="abc",b[10]="012",c[10]="xyz";
strcpy(a+1,b+2);
puts(strcat(a,c+1));
}
程序運行后的輸出結(jié)果是o
A、al2xyz
B、12yz
C>a2yz
D、bc2yz
【答案】C
4、若函數(shù)中有定義語句:intk;則
A、系統(tǒng)將自動給k賦初值0
B、這時k中的值無定義
C、系統(tǒng)將自動給k賦初值7
D、這時k中無任何值
【答案】B
5、對于以下變量定義,正確的賦值是oint*p[3],a[3];
A、p=a
B、*p=a[0]
C>p=&a[0]
D、p[0]=&a[0]
【答案】D
6、有以下程序段:charcl,c2,c3;scanf(H%c%c%c,f,&c1,&c2,&c3);若要給
cl、c2、c3分別輸入字母abe,則以下對輸入形式的描述正確的是o
A、字母ABC之間可以用空格分隔
B、字母ABC之間不能有分隔符
C、字母ABC之間可以用回車符分隔
D、字母ABC之間可以用Tab鍵分隔
【答案】B
【解析】在使用scanf函數(shù)時要注意,在用"枇"格式輸入字符時,分隔符(空格
符、制表符(Tab鍵)、回車符)和轉(zhuǎn)義字符都將作為有效字符進(jìn)行輸入。題目中
要求以字符形式輸入三個數(shù)據(jù),空格、回車符、Tab鍵均會被視為有效字符賦給
對應(yīng)變量,所以字母ABC之間不能有分隔符,B選項正確。
7、要定義整型數(shù)組x,使之包括初值為0的三個元素,下列語句中錯誤的是
A、intx[3]=0,0,0;
B、intx[]=0;
C、staticintx[3]=0;
D、intx[]=
【答案】D
【解析】選項D中整型數(shù)組x的第一個元素是NULL不是0,故選D。
8、若有int*pl,*p2,k;不正確的語句是。
A、pl=&k
B、p2=pl
C、*pl=k+12
D、k=pl+p2
【答案】D
9、以下程序段完全正確的是o
A、int*p;scanf("%d",&p);
B、int*p;scanf("%d”,p);
C、intk,*p=&k;scanf("%d",p);
D、intk,*p:;*p=&k;scanf("%d",p);
【答案】C
10、c語言的基本構(gòu)成單位是:。
A、函數(shù)
B、函數(shù)和過程
C、超文本過程
D、子程序
【答案】A
八、結(jié)構(gòu)體(共10題,每小題1分,共10分)
1、下面賦值表達(dá)式不正確的是.
structstudent
longnum;
charname[20];
}stl,*p=&stl,st2={101,"tom"};
A、stl=st2
B、p->name=st2.name
C、p->num=st2.num
D、*p=st2
【答案】B
2、若有以下說明和語句:
structst
(
intn;
char*ch;
)
?
structsta[3]
{
5,"abc",7,"def",9,"ghk"
)
,*p=a則值為6的表達(dá)式是o
A、p++->n
B、p->n++
C、(*.n++
D、++p->n
【答案】D
【解析】根據(jù)結(jié)構(gòu)變量的存儲特點,p+1意味著增加地址值為結(jié)構(gòu)體數(shù)組a的
一個元素所占的字節(jié)數(shù),即p++使p由a[0]指向all]起始地址。本題++p->n
得到P指向的結(jié)構(gòu)體變量中成員n的值使之加lo因為p指向數(shù)組a起始地
址,p->n的值為5,再執(zhí)行自加1運行,結(jié)果為6。
3、有以下程序:
ttinclude<stdio.h>
structs
{
inta,b;
)
data[2]={10,100,20,200);
main()
structsp=data[l];
printf("%d\n",++(p.a));
)
程序運行后的輸出結(jié)果是_____。
A、10
B、11
C、20
D、21
【答案】D
【解析】聲明data是結(jié)構(gòu)S數(shù)組。初始化data[0].a=10;,
data[0].b=100;,data[l].a=20:,data[l].b=200o主函數(shù)中
p=data[l];,即p.a=data[l].a;,p.b=data[lLb;?執(zhí)行語句
printf("%d\n",++(p.a));打印輸出時p.a先增1再打印,即
p.a=data[l].a=20,先增1等于21。
4、設(shè)有如下定義:
structsk
(
inta;
floatb;
)
data,*p;
若有p=&data;
則對data中成員a的引用正確的是。
A、(*p),data,a
B、(*p).a
C、p->data.a
D、p.data,a
【答案】B
【解析】P是指向結(jié)構(gòu)體的指針,用指針引用結(jié)構(gòu)體成員有兩種格式:p->成
員、(*p).成員
5、enuma
{
sum=9,mon=-1,tue
)
>
定義了o
A、枚舉變量
B、3個標(biāo)識符
C、枚舉數(shù)據(jù)類型
D、整數(shù)9和-1
【答案】C
6、有以下定義和語句:
structstudents{
intnum;
charname[20];
charc;
struct{
intgrade1;
intgrade2;
}S;
);
structstudentsw,*pw;
*pw=w;
下列賦值語句不正確的是o
A、num=1002;
B、w.grade1=85;
C、pw->num=1002;
D、w.s.grade2=85;
【答案】B
【解析】本題主要考查的是結(jié)構(gòu)體變量的嵌套定義,也就是說一個結(jié)構(gòu)體變量
也可以是一個結(jié)構(gòu)體。在本題中student這個結(jié)構(gòu)體中包含了結(jié)構(gòu)體s。所以
對結(jié)構(gòu)體變量w中g(shù)rade1成員的引用是w.s.grade1或w->s->gradelo
7、有以下程序
structstu
(
charnum[10];
floatscore[3];
);
main()
(
structstu
s[3]={{M20021M,90,95,85},{n20022\95,80,75},{H20023M,100,95,90}},*p;
inti;
floatsum=0;
p=s+2;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf(M%6.2f\nH,sum);
)
程序運行后的輸出結(jié)果是O
A、250.00
B、250
C、285.00
D、285
【答案】C
8、有以程序
ttinclude<stdio.h>
ttinclude<string.h>
typedefstruct
(
charname[9];
charsex;
floatscore[2];
}stu;
voidf(stua)
(
stub={"zhao",85.0,90.0};
inti;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
)
main()
(
stuc={"qian",'p',95.0,92.0};
f(c);
printf(M%s,%c,%2.Of,%2.0f\nM,c.name,c.sex,c.score[0],c.scoreLl]);
)
程序的運行結(jié)果是o
A、Qian,f,95,92
B、Qian,m,85,90
C>Zhao,f,95,92
D>Zhao,m,85,90
【答案】A
9、若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是
structstu
{
inti;
intname;
}st,*p;
p=&st;
A、si
B、*i
C、(*.i
D、p->i
【答案】B
【解析】本題主要考查結(jié)構(gòu)指針:p二&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變
量訪問,即st.i,也可以用等價的指針形式即(*p).i和p->i。
10、定義共用體的關(guān)鍵字是O
A、union
B、enum
C、struct
D、typedef
【答案】A
九、程序題(共10題,每小題1分,共10分)
1、執(zhí)行語句printf("%u\n",+12345)的輸出結(jié)果是。
A、12345
B、0
C、-1
D、非定值
【答案】A
2、要求以下程序的功能是計算:s=
main()
|
intn;
floats;
s=l.0;
for(n=10;n>l;n-)s=s+l/n;
printf("%6.4f\n",s);
程序運行后輸出結(jié)果錯誤,導(dǎo)致錯誤結(jié)果的程序行是O
A,s=l.0;
B、for(n=10;n>l;n-)
C、s=s+l/n;
D、printf("%6.4f\n",s);
【答案】C
3、下列程序的運行結(jié)果是。inty=5,x=14;
y=((x=3*y,x+l),xT);
printf("x=%d,y=%d",x,y);
A、x=27,y=27
B、x=12,y=13
C、x=15,y=14
D、x=y=27
【答案】C
4、下列程序的輸出結(jié)果為o
main()
(
intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+l/2;
printf("%f\n",x);
)
A、27.000000
B、27.500000
C、28.000000
D、28.500000
【答案】A
5、設(shè)x,y均為int型變量,且x=10,y=3,則printf("%d,%d\n",x-,-y);
語句的輸出結(jié)果是______o
A、10,3
B、9,3
C、9,2
D、10,2
【答案】D
【解析】C語言的自減運算符有前置與后置兩種形式。當(dāng)自減運算符前置時,
變量先自減一后再參與表達(dá)式運算;而后置時,變量先參與表達(dá)式運算后再自
身減一。
6、要輸出下面的圖形,請完善程序。
#include<stdio.h>
main()
inti,j,k;
for(i=l;i<=5;i++)
(
for(j=l;j<=20-3*i;j++)printf("");
for(k=l;;k++)printf("%3d",k);
for(;k>0;k++)printf("%3d",k);
printf("\n");
)
)
A、k<=i
k=i
B、k<i
k=i-l
C、k<i
k=i
D、k<=i
k=i-l
【答案】D
7、有以下程序
#include<stdio.h>
main()
(
chars[]={"012xy");
inti,n=0;
for(i=0;s[i]!=0;i++)if(s[i]>'a'&&s[i]<=lzl)n++;
printf("%d\n",n);
)
程序運行后的輸出結(jié)果是o
A、0
B、2
C、3
D、5
【答案】B
8、以下程序運行后的輸出結(jié)果是.
#include<stdio.h>
voidmain()
{
inti=10,j=0;
do
(
j=j+l;
while(i>2);
printf("%d\n",j);
)
A、50
B、52
C、51
D、8
【答案】D
9、main()
(
intx=3,i;
for(i=0;i<3;i++)printf(""%d"",f(x));
)
intf(inta)
{
intb=0;
staticc=3;
b++;
C++;
return(a+b+c);
)
執(zhí)行此程序后屏幕上顯示的結(jié)果是。
A、81010
B、7910
C、8911
D、8910
【答案】D
10、根據(jù)下面的程序及數(shù)據(jù)的輸入和輸出形式,程序中輸入語句的正確形式應(yīng)該
為
main()
{
charchi,ch2,ch3;
輸入語句
printf("%c%c%c",chi,ch2,ch3);
輸出形式:abc輸入形式:abc
A、scanf(“%c%c%c”,&chl,&ch2,&ch3);
B、scanf("%c,%c,%c”,&chl,&ch2,&ch3);
C、scanf("%c%c%c”,&chl,&ch2,&ch3);
D、scanf(“%c%c”,&chl,&ch2,&ch3);
【答案】A
廣西藝術(shù)學(xué)院歷年C語言選擇題(二)
考試方式:【閉卷】考試時間:【90分鐘】總分:【100分】
一、理論基礎(chǔ)(共20題,每小題1分,共10分)
1、以下常量中,能夠代表邏輯"真"值的常量是。
A、\0'
B、0
C,'0'
D、NULL
【答案】C
2、在c語言中,以下一組運算符中,優(yōu)先級最高的運算符是_____o
A、<=
B、=
C、%
D、&&
【答案】C
3、流程圖中判斷框是用()圖形來表示的
A、橢圓
B、矩形
C、菱形
D、平行四邊形
【答案】C
4、若運行下面程序時,給變量a輸入15,則輸出結(jié)果是o
A、5
B、25
C、15
D、10
【答案】A
5、char型常量在內(nèi)存中存放的是o
A、二進(jìn)制代碼值
B、十進(jìn)制代碼值
C、十六進(jìn)制代碼值
D、ASCII代碼值
【答案】D
6、以下條件表達(dá)式中能完全等價于條件表達(dá)式x的是.
A、(x==0)
B、(x!=0)
C、(x==l)
D、(x!=l)
【答案】B
7、與二進(jìn)制小數(shù)0.1等值的十六進(jìn)制小數(shù)為o
A、0.1
B、0.2
C、0.4
D、0.8
【答案】D
【解析】此題屬于綜合題。首先,把二進(jìn)制小數(shù)0.1轉(zhuǎn)化成十進(jìn)制小數(shù):
(0.1)2=1X2-1=(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
8、以下敘述中錯誤的是一
A、用戶所定義的標(biāo)識符允許使用關(guān)鍵字
B、用戶所定義的標(biāo)識符應(yīng)盡量做到"見名識意"
C、用戶所定義的標(biāo)識符中,大、小寫字母代表不同標(biāo)識
D、用戶所定義的標(biāo)識符必須以字母或下劃線開頭
【答案】A
9、使下列程序段輸出"123,456,78",鍵盤輸入數(shù)據(jù),正確的輸入是。
inti,j,kscanf("%d,%3d%d",&i,&j,&k);
printf("%d,%d,%d\n",i,j,k);
A、12345678
B、123,456,78
C、123,45678
D、123,*45678
【答案】C
10、有以下程序段intk=0,a=l,b=2,c=3;k=ac?c:k;執(zhí)行該程序段后,k的
值是o
A、3
B、2
C、1
D、0
【答案】B
11、下列數(shù)據(jù)中數(shù)值最大的是O
A、(10000)2
B、(17)8
C、(17)10
D、(10)16
【答案】C
12、假設(shè)a和b為int型變量,則執(zhí)行以下語句后b的值為—
a=l;b=10:
do
(
b-=a;a++;
)
while(b―<0)
A、9
B、-2
C、-1
D、8
【答案】D
13、表達(dá)式k=l*3?2:0的值是。
A、3
B、2
C、1
D、0
【答案】B
14、若已定義x和y為double類型,則表達(dá)式x=l,y=x+3/2的值是
A、1
B、2
C、2)0
D、2)5
【答案】C
15、若有代數(shù)式Jyx+loglOy,則正確的c語言表達(dá)式是
A、sqrt(fabs(pow(y,x)+log10(y)))
B、sqrt(abs(pow(y,x)+logl0(Y)))
C,sqrt(fabs(pow(x,y)+log10(y)))
D、sqrt(abs(pow(x,y)+log10(y)))
【答案】A
16、若以下變量均是整型,且num=sum=7;
則計算表達(dá)式sum=num++,sum++,++num后sum的值為.
A、7
B、8
C、9
D、10
【答案】B
17、在執(zhí)行inta[][3]={1,2,3,4,5,6};語句后,2口][0]的值是。
A、4
B、1
C、2
D、5
【答案】A
18、設(shè)變量m為float類型,變量n為int類型,則以下能實現(xiàn)將m中的數(shù)
值保留小數(shù)點后兩位,第三位進(jìn)行四舍五入運算的表達(dá)式是O
A、n=m*100+0.5,m=n/100.0
B、m=(m*100+0.5)/100.0
C、n=m/100+0.5,m=n*100.0
D、m=m*100+0.5/100.0
【答案】A
19、定義單精度實型變量的正確的語句是。
A、longf;
B、doublef=15.3;
C、realf=15.3;
D、floatf=15.3;
【答案】D
20、以下選項中正確的語句組是o
A、chars[J;s="BOOK!”;
B、char*s;s={"BOOK!"};
C、chars[10];s="BOOK!”;
D、char*s;s="BOOK!”;
【答案】D
二、控制結(jié)構(gòu)(共10題,每小題1分,共10分)
1、以下敘述中正確的是=
A、對于邏輯表達(dá)式:a++||b++,設(shè)a的值為1,則求解表達(dá)式的值后,b的值
會發(fā)生改變
B、對于邏輯表達(dá)式:a++&&b++,設(shè)a的值為0,則求解表達(dá)式的值后,b的值
會發(fā)生改變
C、else不是一條獨立的語句,它只是if語句的一部分
D、關(guān)系運算符的結(jié)果有三種:0,1,-1
【答案】C
【解析】B選項和A選項中,對于邏輯表達(dá)式,其中b的值不會因為表達(dá)式的
結(jié)果發(fā)生改變;D選項中,關(guān)系運算符的結(jié)果有真和假兩種。因此C選項正確
2、c語言對嵌套if語句的規(guī)定是:else總是與()。
A、其之前最近的if配對
B、其之前最近的且尚未配對的if配對
C、縮進(jìn)位置相同的if配對
D、第一個if配對
【答案】B
3、若有定義:floatx=l.5;inta=l,b=3,c=2;則正確的switch語句是
A、switch(x){
case1.0:printf("*\n");
case2.0:printf("**\n");
)
B、switch((int)x);{
case1:printf("*\n");
case2:printf("**\n");
)
C>switch(a+b){
case1:printf("*\n");
case2+1:printf("**\n");
)
D、switch(a+b){
case1:
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年國際政治經(jīng)濟格局變化趨勢分析題目
- 2026年機械設(shè)計基礎(chǔ)試題庫掌握設(shè)計原理與實踐技能
- 2026年經(jīng)濟學(xué)科熱點問題分析題庫
- 2026年傳統(tǒng)文化歷史傳承文化創(chuàng)意產(chǎn)業(yè)測試題
- 2026年大學(xué)期末考試計算機基礎(chǔ)重點知識點測試題
- 2026年滄州航空職業(yè)學(xué)院單招職業(yè)技能考試題庫附答案
- 2026年開封職業(yè)學(xué)院單招職測考試題庫及答案1套
- 2026年電子商務(wù)技術(shù)與應(yīng)用預(yù)測模擬試題集
- 2026年人工智能在環(huán)保領(lǐng)域的應(yīng)用與落地項目面試題
- 2026年數(shù)據(jù)分析師職稱考試試題及解析
- 淘寶網(wǎng)店合同
- 以房抵工程款合同協(xié)議6篇
- GB/T 222-2025鋼及合金成品化學(xué)成分允許偏差
- 申報個稅申請書
- 中秋福利采購項目方案投標(biāo)文件(技術(shù)方案)
- 固態(tài)電池技術(shù)在新能源汽車領(lǐng)域的產(chǎn)業(yè)化挑戰(zhàn)與對策研究
- 2025年廣電營銷考試題庫
- 湖南省岳陽市平江縣2024-2025學(xué)年高二上學(xué)期期末考試語文試題(解析版)
- DB5101∕T 161-2023 公園城市鄉(xiāng)村綠化景觀營建指南
- 2024-2025學(xué)年湖北省武漢市江漢區(qū)七年級(下)期末數(shù)學(xué)試卷
- 重慶市2025年高考真題化學(xué)試卷(含答案)
評論
0/150
提交評論