安徽工業(yè)大學計算機C語言選擇題(共六卷)_第1頁
安徽工業(yè)大學計算機C語言選擇題(共六卷)_第2頁
安徽工業(yè)大學計算機C語言選擇題(共六卷)_第3頁
安徽工業(yè)大學計算機C語言選擇題(共六卷)_第4頁
安徽工業(yè)大學計算機C語言選擇題(共六卷)_第5頁
已閱讀5頁,還剩155頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

安徽工業(yè)大學計算機C語言選擇題(一)

總分:100分考試時間:90分鐘

注意事項:

>仔細檢查試卷和答題紙,如有問題立即舉手詢問,在開考前報告監(jiān)考老師。

>考生必須在答題卡上與題號相對應的答題區(qū)域內(nèi)答題,書寫在試卷(題簽)、草稿

紙上或答題卡上非題號對應的答題區(qū)域的答案一律無效。

>考試結(jié)束,不得將試卷、答題卡或草稿紙帶出考場。

一、理論基礎(chǔ)(每小題1分,共10分)

1、下列運算符中優(yōu)先級最高的算符是O

A、!

B、%

C、-=

D、&&

2、以下標識符中.不能作為合法的c用戶定義標汛符的是o

A、putchar

B、double

C、_123

D、INT

3、已有定義:charc;不能用于判斷c中的字符是否為大寫字母的表達式是

______O

A、c>=,A'&&c<=,Z,

B、'A'-Z'

C、,A'<=c&&c<=,Z'

D、c<=(rz'-32)&&('a1-32)<=c

4、c語言中,運算符>=屬于

A、算術(shù)運算符

B、關(guān)系運算符

C、邏輯運算符

D、條件運算符

5、在計算機中,用()位二進制碼組成一個字節(jié)。

A、8

B、16

C、32

D、64.

6、以下數(shù)值中,不正確的八進制數(shù)或十六進制數(shù)是o

A、0x16

B、016

C、-16

D、Oxaaaa

7、已知字母a的ascii碼十進制值為97,則執(zhí)行以下語句后的輸出為。

yhgchara='a';

printf('f%d,%c\n'',a+r2,-'0',a+r3'-10');

A、b,c

B、a-運算不合法,故有語法錯

C、98,c

D、格式描述和輸匕項不匹配,輸出無定值

8、以下選項中正確的整型常量是________o

A、12.

B、-20

C、1,000

D、456

9、如果inta=2,b=3,c=0,下列描述正確的是。

A、a>b!二c和a>(b!=c)的執(zhí)行順序是一樣的

B、!a!=(b!=c)表達式的值為1

C、a||(b二c)執(zhí)行后b的值為0

D、a&&b>c的結(jié)果為假

10、以下常量中,能夠代表邏輯"真"值的常量是O

A、\0'

B、0

C、’0'

D、NULL

11、設a=5、b=6>c=10、d=8、m=2、n=5,執(zhí)行(m=a>b)&&(n二c>d)后n的值為

A、1

B、5

C、3

D、4

12、以下答案中不是c語言最基本數(shù)據(jù)類型的是。

A、邏輯型

B、整型

C、字符型

D、指針型

13、設chars[10]="abcde",t[]=〃12345〃;則s和t在內(nèi)存中分配的字

節(jié)數(shù)分別是o

A、6和5

B、6和6

C、10和5

D、10和6

14、下列引用的定義中,()是錯誤的。

A、inti;

int&j=i;

B、inti;

int&j;

j二i;

C、floati;

float&j=i;

D、chard;

char&k=d;

15、與十六進制數(shù)ab等值的二進數(shù)是。

A、10101010

B、10101011

C、10111010

D、10111011

16、設有intx=ll;則表達式(x++*l/3)的值是o

A、3

B、4

C、11

D、12

17、未指定存儲類別的變量,其隱含的存儲類別為o

A、auto

B、static

C、extern

D、register

18、表達式"?0x11"的值是o

A、OxFFEE

B、0x71

C、0x0071

D、OxITEl

19、有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10),*p=a;則數(shù)值為9的

表達式是________。

A、*P+9

B、*(P+8)

C、*P+=9

D、P+8

20、指針x指向的整型變量值為25,則"printf("%d\n",++*x);”

的輸出是一

A、23

B、24

C、25

D、26

二、控制結(jié)構(gòu)(每小題1分,共10分)

1、在c程序中,判斷邏輯值時,分別用()表示邏楫值"真"、"假

A、非00

B、01

C、非0非0

D、11

2、a,b為整型變量,二者均不為0,以下關(guān)系表達式中恒成立的是()。

A、a*b/a*b==l

B、a/b*b/a==l

C、a/b*b+a%b==a

D、a/b*b~a

3、有以下定義語句:doublea,b;intw;longc;若各變量已正確賦值,則下

列選項中正確的表達式是O

A、a=a+b=b++

B、w%((int)a+b)

C、(c+w)%(int)a

D、w=a==b

4、設變量a、b、e、d和y都已正確定義并賦值。若有以下if語句:if(a<b)

if(c==d)y=0;elsey=l;該語句所表示的含義是。

A、y=0,a

B、y=0,a

y=l,a2by-1,a2b且cWd

C、y=0,a

D、y=0,a

y=1,aVB且CWDy="1,cWd

5、若a是數(shù)值類型,則邏輯表達式(a==l)||(a!=l)的值是。

A、1

B、0

C、2

D、不知道a的值,不能確定

6、若有定義:floatx=l.5;inta=l,b=3,c=2;則正確的switch語句是

A、switch(x){

case1.0:printfi,'*\n,r);

case2.0:printf(,,**\nh);

)

B、switch((int)x);{

case1:printf("*\nM);

case2:printf("**\n");

)

C、switch(a+b){

case1:printf(r'*\nn);

case2+1:printf(,**\n,r);

)

D、switch(a+b){

case1:printf("*\n,');

casec:printf("**\n");

}

7、設變量x和y均已正確定義并賦值。以下if語句中,在編譯時將產(chǎn)生錯誤信

息的是________O

A、if(x++);

B、if(x>y&&y!=0);

C、if(x>0)x―

D、if(y<0){;}

8、下列程序的輸出結(jié)果是o

main()

(

inta=0,i;

for(i=l;i<5;i+-)

(

switch(i)

(

case0:case3:a+=l;

case1;

case2:a+=2;

default:a+=3;

)

printf("%d",a);

)

A、19

B、1

C、6

D、8

9、在c的if語句中,可用作條件的表達式是________o

A、關(guān)系表達式

B、邏輯表達式

C、算術(shù)表達式

D、任意表達式

10、設變量x和y均已正確定義并賦值。以下if語句中,在編譯時將產(chǎn)生錯誤信

息的是o

A、if(x++);

B、if(x>y&&y!=0);

C、if(x>0)x-elsey++;

D、if(y<0){;}elsex++;

三、循環(huán)結(jié)構(gòu)(每小題1分,共10分)

1、運行下面程序時,從鍵盤輸入字母a,則輸出結(jié)果是

#include<stdio.h>

main()

charch;

ch=getchar();

switch(ch)

(

case'a*:printf(,,aaaa\nH)

case'b1:printf(,,bbbb\nM)

default:printf("cccc'n")

)

)

A、AAAA

B、AAAABBBB

C、AAAABBBBCCCC

D、AAAACCCC

2、下列while循環(huán)的次數(shù)是owhilelinti=0)i一;

A、0

B、1

C、5

D、無限

3、以下不構(gòu)成無限循環(huán)的語句或語句組是o

A、n=0;

do

++n;

while(n<=0);

B、n=0;

while(1)

n++;

C、n=10;

while(n);

n-;

D、for(n=0,i=l;;i++)

n+=i;

4、以下選項中哪些描述是不正確的?

A、循環(huán)語句必須要有終止條件否則不能編譯

B、break關(guān)鍵字生于跳出當前循環(huán)

C、continue用于終止本次循環(huán),執(zhí)行下一次循環(huán)

D、switch條件語句中可以使用break

5、以下程序運行后的瑜出結(jié)果是o

^include<stdio.h>

main()

(

ints=0,k;

for(k=7;k>=0;k-)

switch(k)

case1:case4:case7:s++;

break;

case2:case3:case6:break;

case0:case5:s+=2;

break;

)

)

printf("s=%d\n",s);

)

A、s=5

B、s=l

C、s=3

D、s=7

6、若有程序段:x=99;while(x-2)x—;則循環(huán)結(jié)束時,x二

A、99

B、2

C、1

D、0

7、執(zhí)行下面程序片段的結(jié)果是。intx=23;

printf("%2d'r,x-);

)

while(!x);

A、打印出321

B、打印出23

C、不打印任何內(nèi)容

D、陷入死循環(huán)

8、有以下程序

main()

(

intk=4,n=0;

for(;n<k;)

(

n++;

if(n%3!=0)continue;

k一;

)

printf("%d,%d\n\k,n);

}

程序運行后的輸出結(jié)果是

A、1,1

B、2,2

C、3,3

D、4,4

9、程序設計語言中。

A、while循環(huán)語句的執(zhí)行效率比dorvhile循環(huán)語句的執(zhí)行效率高

B、while循環(huán)語句的循環(huán)體執(zhí)行次數(shù)比循環(huán)條件的判斷次數(shù)多1,而do-

while語句的循環(huán)體執(zhí)行次數(shù)比循環(huán)條件的判斷次數(shù)少1

C、while語句的循環(huán)體執(zhí)行次數(shù)比循環(huán)條件的判斷次數(shù)少1,而do-while

語句的循環(huán)體執(zhí)行次數(shù)比循環(huán)條件的判斷次數(shù)多1

D、while語句的循環(huán)體執(zhí)行次數(shù)比循環(huán)條件的判斷次數(shù)少1,而do-while

語句的循環(huán)體執(zhí)行次數(shù)等于循環(huán)條件的判斷次數(shù)

10、以下程序中,while循環(huán)的循環(huán)次數(shù)是

main()

{

inti=0;

while(i<10)

(

if(i<1)continue;

if(i==5)break;

in;

}

)

A、1

B、10

C、6

D、死循環(huán),不能確定次數(shù)

四、數(shù)組/指針數(shù)組(每小題1分,共10分)

1、在c語言中,一維數(shù)組的定義方式為:類型說明符數(shù)組名—

A、[常量表達式]

B、[整型表達式]

C、[整型常量]或[整型表達式]

D、[整型常量]

2、已知英文字母a的十進制ascii碼值為65,那么a的十進制ascii碼值為

A、98

B、100

C、89

D、97

3、對兩個數(shù)組a和b進行下列初始化:charm□="1234567";char

=,'3','4','5','6','7'};則下列敘述正確的是,

A、數(shù)組in與數(shù)組n完全相同

B、數(shù)組m與數(shù)組n長度相同

C、數(shù)組m比數(shù)組n長1

D、數(shù)組m與數(shù)組n中都存放字符串

4、設有以下定義:inta[3][3]={1,2,3,4,5,6,7,8,9);int(*ptr)[3]=a;

則下列能正確表示數(shù)組元素a[l][2]的表達式是o

A、*((*ptr+l)[2])

B、a[2][3]

C、(*ptr+l)+2

D、*(*(a+l)+2)

5、設charstr[100];inti=5;則引用數(shù)組元素的錯誤形式的是一?

A、str[l+10]

B、*(srr+

C、(str+I-1)

D、*(&(str++)+

6、要定義整型數(shù)組x,使之包括初值為0的三個元素,下列語句中錯誤的是

A、intx[3]=0,0,0;

B、intx[]=0;

C、staticintx[3]=0;

D、intx[]=

7、若有inta[10],*p=a;

,且a數(shù)組已賦值,則與a[4]不等價的表達式為。

A、p+4

B、*(p+4)

C、*(a+4)

D、p[4]

8、以下能正確定義數(shù)組并正確賦初值的選項是o

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}};

9、在以下定義中,標識符point(*p)[3];

A、定義不合法

B、是一個指針數(shù)組名,每個元素是一個指向整數(shù)變量的指針

C、是一個指針,它指向一個具有三個元素的一維數(shù)組

D、是一個指向整型變量的指針

10、關(guān)于數(shù)組的定義與初始化,下列哪一項是錯誤的()

A、intarr[5]={1,2,3,4,5};

B、intarr[]={1,2,3,4,5};

C、intarr[5]={1,2,3};

D、intarr[5]={1,2,3,4,5,6};

五、字符串/字符串指針(每小題1分,共10分)

1、在下列各項中,運算級別最低的為_______O

A、算術(shù)運算符

B、關(guān)系運算符

C、邏輯運算符

D、圓括號()

2、從鍵盤上輸入某字符串時,不可使用的函數(shù)是()。

A、getchar()

B、gets()

C、scanf()

D、fread()

3、下列類型的數(shù)據(jù)不可以存儲在可變型變量中的是o

A、整型

B、字節(jié)型

C、單精度型

D、日期型

4、在c語言中,以作為字符串結(jié)束標志

A、'\n'

B、''

C、'0'

D、'\0'

5、下列哪個是c語言的有效標識符

A、_Nol

B、No.1

C、12345

D、int

6、下面選項中合法的字符常量是________o

A、"X"

B、‘X’

C、,abcr

D、

7、下列變量定義中,錯誤的是o

A、intx=3;

B、floatf;d;

C^Strings="Hello!";

D、booleanb=true;

8、設pl和p2是指向同一個字符串的指針變量,c為字符變量,則以下不能

正確執(zhí)行的賦值語句是()。

A、c=*pl+*p2;

B、p2=c;

C、pl=p2;

D、c=*pl*(*p2);

9、以下敘述中不正確的是o

A、空字符串(即兩個雙引號連寫)只占一個存儲單元

B、字符型常量可以放在字符型變量中

C、字符型常量可以放在字符串變量中

D、字符型常量可以與整數(shù)混合運算,而字符呂常量不可以

10、下列能正確進行字符串賦值的是O

A、chars[5]={"ABCDE");

B、chars[5]={'A','B','C','D','E'};

C、char*s;s=”ABCDE”;

D、char*s;printf%S”,s);

六、函數(shù)/函數(shù)指針(每小題1分,共10分)

1、下列關(guān)于C語言的說法錯誤的是________o

A、C程序的工作過程是編輯、編譯、連接、運行

B、C語言不區(qū)分大小寫。

C、C程序的三種基本結(jié)構(gòu)是順序、選擇、循環(huán)

D、C程序從main函數(shù)開始執(zhí)行

2、有以下函數(shù):fun(char*a,char*b)

(

while((*a!=r\0')&&(*b!='\01)&&(*a==*b)>

(

a++;

b++;

)

return(*a-*b);

}

該函數(shù)的功能是o

A、計算a和b所指字符串的長度之差

B、將b所指字符串連接到a所指字符串中

C、將b所指字符串連接到a所指字符串后面

D、比較a和b所指字符串的大小

3、已有定義int(*p)();指針p可以。

A、代表函數(shù)的返回值

B、指向函數(shù)的入口地址

C、表示函數(shù)的類型

D、表示函數(shù)返回值的類型

4、以下敘述中正確的是o

A、全局變量的作月域一定比局部變量的作用域范圍大

B、靜態(tài)(static)類別變量的生存期貫穿于整個程序的運行期間

C、函數(shù)的形參都屬于全局變量

D、未在定義語句口賦初值的auto變量和static變量的初值都是隨機值

5、已有函數(shù)max(a,b),為了讓函數(shù)指針變量p指向函數(shù)max,正確的賦

值方法是O

A、p=max;

B、*p=max;

C、p=max(a,b);

*p=max(a,b);

6、閱讀以下函數(shù)fun(char*sl,char*s2)

(

inti=0;

while(si[i]==s2[i]&&s2[i]!=,\0')i++;

return(sl[i]='\0,&as2[i]='\0,);

)

此函數(shù)的功能是o

A、將s2所指字符串賦給si

B、比較si和s2所指字符串的大小,若si比s2的大,函數(shù)值為1,否則函數(shù)

值為0

C、比較si和s2所指字符串是否相等,若相等,函數(shù)值為1,否則函數(shù)值為0

D、比較si和s2所指字符串的長度,若si比s2的長,函數(shù)值為1,否則函數(shù)

值為0

7、設cl,c2均是char類型變量,則不正確的函數(shù)調(diào)用為。

A、printf,cl,c2)

B、getchar(cl)

C、putchar(r\')

D、putchar(cl)

8、調(diào)用函數(shù)時,當實參和形參都是簡單變量時,它們之間數(shù)據(jù)傳遞的過程是

A、實參將其地址傳遞給形參,并釋放原先占用的存儲單元

B、實參將其地址傳遞給形參,調(diào)用結(jié)束時形參再將其地址回傳給實參

C、實參將其值傳遞給形參,調(diào)用結(jié)束時形參再將其值回傳給實參

D、實參將其值傳遞給形參,調(diào)用結(jié)束時形參并不將其值回傳給實參

9、設有如下函數(shù)定義:若執(zhí)行調(diào)用語句:n=fun(3);則函數(shù)fun總被調(diào)用次數(shù)

為O

A、2

B、3

C、4

D、5

10、以下程序的運行結(jié)果是O

^include<stdio.h>

#defineMIN(x,y)(xj<(y)?(x):(y)

mainO{

inti=10,j=15,k;

k=10*MIN(i,j);

printf,k);

}

A、10

B、15

C、100

D、150

七、指針(每小題1分,共10分)

1、以下關(guān)于數(shù)組的描述正確的是O

A、數(shù)組的大小是團定的,但可以有不同的類型的數(shù)組元素。

B、數(shù)組的大小是可變的,但所有數(shù)組元素的類型必須相同。

C、數(shù)組的大小是團定的,但所有數(shù)組元素的類型必須相同。

D、數(shù)組的大小是可變的,但可以有不同的類型的數(shù)組元素。

2、以下不正確的定義語句是o

A、doublex[5]=l.0,2.0,3.0,4.0,5.0;

B、inty[5]=0,1,2,3,4,5;

C、charcl[]='r,'2r,'3\'4r,'51;

D、charc21]='a','b',*cf:

3、在c語言中,調(diào)用函數(shù)除函數(shù)名外,還必須有o

A、函數(shù)預說明

B、實際參數(shù)

C、()

D、函數(shù)返回值

4、下列數(shù)據(jù)中屬于“字符串常量”的是o

A、ABC

B、"ABC"

C、'ABC'

D、'A'

5、若有數(shù)組名作為函數(shù)調(diào)用的實參,傳遞給形參的是

A、數(shù)組的首地址

B、數(shù)組第一個元冢的值

C、數(shù)組中全部元素的值

D、數(shù)組元素的個數(shù)

6、以下定義:int(*p)[4]中,標識符p是o

A、一個指向整型變量的指針

B、一個指針數(shù)組名

C、一個指針,它指向一個含有4個整型元素的一維數(shù)組

D、說明不合法

7、以下正確的函數(shù)頭定義形式是o

A、doublefun(intx,inty)

B、doublefun(intx;inty)

C、doublefun(intx,inty);

D、doublefun(intx,y);

8、char*match(charc)是()。

A、函數(shù)定義的頭部

B、函數(shù)預說明

C、函數(shù)調(diào)用

D、指針變量說明

9、有以下程序段:charcl,c2,c3;scanf(rt%c%c%c,r,&c1,&c2,&c3);若要給cl、

c2、c3分別輸入字母abe,則以下對輸入形式的描述正確的是o

A、字母ABC之間可以用空格分隔

B、字母ABC之間不能有分隔符

C、字母ABC之間可以用回車符分隔

D、字母ABC之間可以用Tab鍵分隔

10、以下函數(shù)調(diào)用語句中實參的個數(shù)是()。

func((el,e2),(e3,e4,e5));

A、2

B、3

C、5

D、語法錯誤

八、結(jié)構(gòu)體(每小題1分,共10分)

1、有以下結(jié)構(gòu)體說明和變量的定義,且指針p指向變量a,指針q指向變量b。則

不能把結(jié)點b連接到結(jié)點a之后的語句是o

structnode

(

chardata;

structnode*next;

)

a,b,*p=&a,*q=&b;

A、3475

B、3574

C、1234

D、1235

2、以下程序運行后的瑜出結(jié)果是

#include<stdio.h>

structst

(

intx,y;

}data[2]={{1,10],{2,20}};

main()

(

structst*p=data;

printfp->y);

printf(-+p)->x);

)

A、10,1

B、20,1

C、10,2

D、20,2

3、設有如下說明

typedefstructst

(

longa;

intb;

charc[2];

)

new;

則下面敘述中正確的是o

A、以上的說明形式非法

B、ST是一個結(jié)構(gòu)體類型

C、NEW是一個結(jié)構(gòu)體類型

D、NEW是一個結(jié)構(gòu)體變量

4、有以下程序

^include<stdio.h>

structtt

(

intx;

structtt*v;

)

*p;

structtta[4]={20,a+l,15,a+2,30,a+3,17,a};

main()

(

inti;

p=a;

for(i=l;i<=2,i-+)

(

printf(,r%d,\p->x);

p=p->y;

)

)

程序的運行結(jié)果是________o

A、20,30,

B、30,17

C、15,30,

D、20,15

5、c語言中用于定義類的關(guān)鍵字是。

A、class

B、struct

C、default

D、sizeof

6、以下敘述中正確的是。

A、即使是同類型的結(jié)構(gòu)體變量,也不能進行整體賦值

B、結(jié)構(gòu)體變量的地址不能作為實參傳給函數(shù)

C、結(jié)構(gòu)體數(shù)組名天能作為實參傳給函數(shù)

D、結(jié)構(gòu)體中可以含有指向本結(jié)構(gòu)體的指針成員

7、以下程序的輸出結(jié)果是

#include<stdio.h>

structst

(

intx;

int*y;

}

*p;

intdt[4]={10,20,30,40};

structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};

main()

{

p=aa;

printf(,r%d\nH,+-(p->x));

}

A、10

B、11

C、51

D、60

8、以下關(guān)于c語言數(shù)據(jù)類型使用的敘述中錯誤的是o

A、若只處理“真”和“假”兩種邏輯值,應使用邏輯類型

B、若要保存帶有多位小數(shù)的數(shù)據(jù),可使用雙精度類型

C、整數(shù)類型表示的自然數(shù)是準確無誤差的

D、若要處理“人員信息”等含有不同類型的用關(guān)數(shù)據(jù),應自定義結(jié)構(gòu)體類型

9、有以下程序

structstu

{

charnum[10];

floatscore[3];

)

main()

{

structstu

s[3]={{H20021\90,95,85),{M20022\95,80,75),{M20023\100,95,90}},*p;

inti;

floatsum=0;

p=s+l;

for(i=0;i<3;i+-)sum=sum+p->score[i];

printf("%.3f\n",sum);

程序運行后的輸出結(jié)果是。

A、250.000

B、250

C、270.000

D、270

10、以下對c語言中共用體類型數(shù)據(jù)的敘述正確的是

A、可以對共用體變量名直接賦值

B、一個共用體變量中可以同時存放其所有成員

C、一個共用體變置中不可以同時存放其所有成員

D、共用體類型定義中不能出現(xiàn)結(jié)構(gòu)體類型的成員

九、程序題(每小題1分,共10分)

1、有以下程序

main(){

inti,j,m=55;

for(i=l;i<3;i++)for(j=3;j<=++)m=m%j;

printf(w%d\nw,m);

)

程序的運行結(jié)果是o

A、0

B、1

C、2

D、3

2、有以下程序

^include<stdio.h>

main()

(

inta=l,b=0;

printf("%d,,r,b=a+b);

printf("%dv,a=2*b);

)

程序運行后的輸出結(jié)果是。

A、0,0

B、1,0

C、3,2

D、1,2

3、以下程序的輸出結(jié)果是o

#defineSQR(X)X*X

main()

(

intA,k=2,m=l;

A=SQR(k+m)/SQR(k+m);

printf(,r%d\nH,a;;

)

A、1

B、7

C、9

D、3

4、有以下程序:

main()

(

charx[]="string”;

x[0]=0;

x[i]=,\o,;

x[2]='O';

printf("%d%d\n*,sizeof(x),strlen(x));

}

程序運行后的輸出結(jié)果是o

A、61

B、70

C、63

D、71

5、執(zhí)行下列程序時輸入:123V空格>456〈空格>789V回車,,輸出結(jié)果是

main()

(

chars[100];

intc,i;

scanf(w%cw,&c);

scanf(n%d",&i);

scanfs);

printf("%c,%d,%s\n”,c,i,s);

)

A、123,456,789

B、1,456,789

C、1,23,456,789

D、1,23,456

6、有以下程序

main()

char*p[10]={"abcn,^aabdfg11,,,dcclbe,f,"abbd",^cd");

printf("%d\nn,strlen(p[4]));

}

執(zhí)行后輸出結(jié)果是

A、2

B、3

C、4

D、5

7、有以下程序

main()

(

intx=011;

printf("%d\n^^,+-x);

程序運行后的輸出結(jié)果是o

A、12

B、11

C、10

D、9

8、若希望下面的程序運行后輸出45,程序空白處的正確選擇是

^include<stdio.h>

voidmain()

(

inti,j=10,a[]={1,3,5,7,9,11,13,15};

for()j+=a[i];

printf(1,%d\nH,j);

)

A、i=5;i>l;i―

B、i=0;i<7;++i

C、i=5;i>=l;-i

D、i=2;i<6;++i

9、下面程序的輸出結(jié)果是.

^include<stdio.h>

voidmain()

(

intx=8,y=一7,z二9;

if(x<y)if(y<0)z=0;

elsez-=l;

printf("%d\n",z);

)

A、8

B、1

C、9

D、0

10、閱讀以下程序:

main()

intx;

for(x=5;x>0;x-)if(x―<5)printf("%d,",x);

elseprintf(r'%d,,r,x++);

)

程序運行后的輸出結(jié)果是

A、4,3,2

B、4,3,1,

C、5,4,2

D、5,3,1,

【計算機C語言選擇題(一)參考答案】

一、理論基礎(chǔ)

1、A

2、A

3、B

4、B

5、A

【解析】在計算機中,8位二進制碼組成一個字節(jié)。

6、C

7、C

8、B

9、B

10、C

11、B

12、A

13、D

14、B

15、B

【解析】本題考查十六進制與二進制的轉(zhuǎn)化,每位十六進制數(shù)正好對應4位二進制數(shù),

不足4位的高應補0。本題中數(shù)A對應1010,數(shù)B對應1011,故轉(zhuǎn)換過程為AB->1010

lOllo

16、A

【解析】當自加運算符做后綴表達式的時候,表達式的值不變,只有變量的值增加L所

以表達式(x++*l/3)相當于Ql*l/3),取整后為3。

17、A

18、A

19、B

20、D

二、控制結(jié)構(gòu)

1、A

【解析】在C程序中,判斷邏輯值時,用非0表示“真”,用0表示“假”。計算邏輯

表達式時,邏輯表達式的值為“真”是用1表示的,若邏輯表達式的值為“假”,則用0

表小。

2、C

3、C

【解析】選項A不是合法的賦值語句,將最右邊的第一個賦值表這式加括號即為

a=a+(b=b++)才正確,故選項A不正確。選項B中運算符%的對象必須是整型,而在選項

B中(int)a+b為double型故選項B不正確。a,b都為double型,應當避免使用a二二b

這樣的關(guān)系表達式,因為通常存放在內(nèi)存中的實型數(shù)據(jù)是有誤差的,因此不可能精確相

等,這將導致關(guān)系表達式a二二b總為0。所以,4個選項中選項C符合題意。

4、C

5、A

6、C

【解析】在C語言中,switch。后的一對圓括號中可以是整型表達式或字符表達式。case

語句后面的常量表達式的類型必須與switch后圓括號中的表達式類型相同,備case語句標

號的值應該互不相同。選項A)中case后面的常量表達式為實型,所以不正確;選項D)中

case后面出現(xiàn)了變量表達式,所以選項D)錯誤。

7、C

【解析】elsey++;elsex++;

本題考查的是if語句。if后表達式兩側(cè)的圓括號不可少,最后是一條語句或是用花括號括

起來的一組語句。選項A和B是在表達式后跟了一條空語句,選項D是在表達式后跟了一

組空語句,選項C中X--是表達式而不是語句,所以在編譯時會出現(xiàn)錯誤信息。故本題答

案選C。

8、A

9、D

10、C

【解析】C語言規(guī)定,在“if(表達式)語句l;else語句2;”這種形式的if語句中,在每一

個else前面有一個分號,整個語句結(jié)束處有一分號。在本題的C)選項中,else前面少了一

個分號,這樣程序在編譯時,會出現(xiàn)語法錯誤。

三、循環(huán)結(jié)構(gòu)

1、C

【解析】本題考查switch語句。因為ch二A,所以第一個switch語句,執(zhí)行ease'A'后面

的語句,輸出AAAA,沒有遇到break語句,所以接著再執(zhí)行caseB和default,分別輸出

BBBB和CCCCo

2、A

3、A

【解析】while(l),條件永遠為真,是無限循環(huán);while(n);循環(huán)體為空語句,是無限循環(huán);

for循環(huán)中兩個分號之間為循環(huán)執(zhí)行條件,如果省略,則為條件永遠成立,為無限循環(huán);所

以答案選擇A。

4、A

5、D

6、B

7、B

8、C

9、D

10、D

四、數(shù)組/指針數(shù)組

1、D

2、D

【解析】在ASCII碼表中,大、小寫英文字母是分組排序安排在不同位置的,并且小寫英

文字母的碼值比對應的大寫英文字母的碼值大32。所以,當知道A的ASCII碼值是鴕

后,字符a的碼值為65+32=97。

3、C

4、D

【解析】指針變量ptr是指向長度為3的整型一維數(shù)組,當ptr指向二維數(shù)組a時,ptr每

移動一個單位將指向數(shù)組的下一行,*(*(a+l)+2)表示數(shù)組元素a[l][2],*(*(ptr+l)+2)也可

以。

5、D

6、D

【解析】選項D中整型數(shù)組x的第一個元素是NULL不是0,故選D。

7、A

【解析】請仔細閱讀交規(guī)難度:簡單

8、D

【解析】數(shù)組維數(shù)必須為常量;數(shù)組為一行兩列,而兩行一列;數(shù)組定義錯誤,

數(shù)組定義時列數(shù)必須寫明,而行數(shù)可以缺省,D.表示正確,相當于{{1,2},{3,4},{0,0})

9、C

10、D

【解析】選項4初始化值大于數(shù)組的大小。

五、字符串/字符串指針

1、C

【解析】如果在同一個表達式中出現(xiàn)不同的運算符,其優(yōu)先順序為?先執(zhí)行算術(shù)運算、

字符串運算和日期時間運算,其次執(zhí)行關(guān)系運算,最后執(zhí)行邏輯運算。如果在表達式中包

含圓括號,首先應該計算出圓括號中的結(jié)果,其優(yōu)先級最高。

2、A

3、B

【解析】本題考查可變型變量,可變型變量可以存儲9種類型的數(shù)據(jù):空、NULL型、整

型、長整型、單精度型、雙精度型、貨幣型、日期型和字符串型。選項A錯誤,整型數(shù)據(jù)

可以存儲在可變型變量中;選項B正確,字節(jié)型數(shù)據(jù)不可以存儲在可變型變量中;選項C

錯誤,單精度型數(shù)據(jù)可以存儲在可變型變量中;選項D錯誤,日期型數(shù)據(jù)可以存儲在可變

型變量中。答案為瓦

4、D

5、A

【解析】標識符是一個以字母或下劃線開始的,由字母、下劃線和數(shù)字組成的字符串,

標識符不能與任意關(guān)鍵字司名。

6、B

【解析】字符常量是用單引號括起來的一個字符。A選項中,使用雙引號,所以是錯誤的;C

選項中,abc是字符串,字符常量只能是單個字符,不能是字符串;D選項中,以反斜線”開頭的

是轉(zhuǎn)義字符。因此B選項正確。

7、B

【解析】A選項定義了一個整型;(3選項定義了一個字符串;D選項定義了一個布爾型變

量:B選項中的f;d不符合標識符規(guī)范,因而選B。

8、B

9、C

10、C

六、函數(shù)/函數(shù)指針

1、B

2、D

【解析】字符串的比較規(guī)則是對兩個字符串自左至右逐個字符相比(按ASCII碼值大小比

較),直到出現(xiàn)不同的字符或遇到'\0'為止,相等,則返回0,否則返回第一個不等字符串

的ASCII碼的差值。

3、B

4、B

5、A

6、C

7、B

8、D

9、B

【解析】首先n=fun(3),3被當作參數(shù)傳遞進去,這就進行了一次調(diào)用3當做參數(shù)傳進去后,

程序會執(zhí)行這句elsereturnfun(k-l)+l;這就調(diào)用了第二次,而參數(shù)是3-1也就是2。2被

當做參數(shù)傳進去后,程序會執(zhí)行這句elsereturnfun(k-l)n;這就調(diào)用了第三次而參數(shù)是2-1

也就是lo1被當做參數(shù)傳進去后,程序會執(zhí)行這句elseif(k二二l)retuml;不再遞歸調(diào)用,所

以最終結(jié)果為3次。

10、B

【解析】該題考查函數(shù)的宏定義及三目運算符。表達式10*MIN(i,j)利用宏展開后為:

10*i<ji:j,即100<1510:15,其值為15,然后將15賦給k。

七、指針

1、C

2、B

【解析】本題考查對一維數(shù)組的賦值。選項B)中,y[5]說明數(shù)組中有5個元素,但卻給它

賦了6個值,數(shù)組溢出所以是錯誤的。

3、C

4,B

5、A

6、C

【解析】本題中相當于定義了一個二維數(shù)組intp[][4],標識符p是一個指針,指向一個含

有4個元素的一維數(shù)組。

7、A

【解析】函數(shù)的形式參數(shù)之間以逗號”隔開,且每個變量均需說明其數(shù)據(jù)類型,圓

括號后面不能有分號。只有選項A)符合要求。

8、A

9、B

【解析】在使用scant函數(shù)時要注意,在用5c”格式輸入字符時,分隔符(空格符、制表符

(Tab鍵)、回車符)和轉(zhuǎn)義字符都將作為有效字符進行輸入。題目中要求以字符形式輸入三

個數(shù)據(jù),空格、回車符、Tcb鍵均會被視為有效字符賦給對應變量,所以字母ABC之間

不能有分隔符,B選項正確。

10、A

八、結(jié)構(gòu)體

1、B

【解析】在被調(diào)用過程中,有這樣的語句“StaticSum”,因為變量Sum是局部變量,局

部變量除了可以用Dim語句聲明外,還可用Static語句將變量聲明為靜態(tài)變量,它在程序

運行過程中可保留變量的值,這就是說每次調(diào)用過程時,用Static說明的變量保持原來的

值。具體過程分析如下:調(diào)用P(l),所以在被調(diào)過程中N=l,執(zhí)行ForNext循環(huán),

P(l)=Sum=l;調(diào)用P⑵,所以在被調(diào)過程中N=2,執(zhí)行ForNext循環(huán),P⑵二Sum二,;

調(diào)用P⑶,所以在被調(diào)過程中N=3,執(zhí)行ForNext循環(huán),P(3)=Sum=10;調(diào)用P⑷,所

以在被調(diào)過程中N=4,執(zhí)行ForNext循環(huán),P⑷=Sum=20;不難看出,最后輸出的結(jié)果

S值應為1+4+10+20=35,所以選項C)正確。

2、C

【解析】正確地給結(jié)構(gòu)體數(shù)組賦初值,data[0].x=lsdata[0].y=10.data[l].x=2.

data[l].y=20;首先,p指向data[0],第一條打印語句輸出p->y,即data[0].y的值10;

(++p)->x含義是先++p,此時p指向data[l],第二條打印語句輸出(++p)->x,即

dala[l].x的值2。

3、C

【解析】typedef關(guān)鍵字用于聲明一個新的類型名代替已有的類型名。本題中如果沒有用

typedef進行定義的話,則structST為結(jié)構(gòu)體類型,現(xiàn)在用typedef定義后,相當于用

NEW代表了structST這一結(jié)構(gòu)體類型,故NEW為結(jié)構(gòu)體類型。

4、D

5、A

【解析】C中類定義的關(guān)鍵字是class。class不能大寫c

6、D

【解析】同類型的結(jié)構(gòu)體變量可以進行整體賦值。結(jié)構(gòu)體變量的地址可以作為實參傳遞

給函數(shù)。結(jié)構(gòu)體數(shù)組ing可以作為實參傳遞給函數(shù)。結(jié)構(gòu)體成員可以包含指向本結(jié)構(gòu)體的

指針成員。本題答案為D選項。

7、C

【解析】考查結(jié)構(gòu)體成員數(shù)據(jù)的引用方法[解題要點]通過指針來引用結(jié)構(gòu)體成員的方法

是(指針變量)->結(jié)構(gòu)體成員名。[考點鏈接]結(jié)構(gòu)體變量中的數(shù)據(jù)引用。

8、A

9、A

10、C

九、程序題

1、B

2、D

3、B

4、B

5、D

6、A

7、C

8、C

9、C

10、B

安徽工業(yè)大學計算機C語言選擇題(二)

總分:100分考試時間:90分鐘

注意事項:

>仔細檢查試卷和答題紙,如有問題立即舉手詢問,在開考前報告監(jiān)考老師。

>考生必須在答題卡上與題號相對應的答題區(qū)域內(nèi)答題,書寫在試卷(題簽)、草稿

紙上或答題卡上非題號對應的答題區(qū)域的答案一律無效。

>考試結(jié)束,不得將試卷、答題卡或草稿紙帶出考場。

一、理論基礎(chǔ)(每小題1分,共10分)

1、若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是________

A、一3

B、9

C、一12

D、6

2、有定義語句:intx,y;若要通過scanf,&x,&y);語句使變量x得

到數(shù)值11.變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是o

A、1112V回車》

B、11,12V回車〉

C、11,12V回車)

D、11,V回車,

12V回車》

3、若給定條件表達式(m)?(a++):(a—)則下列選項中和表達式m等價的是

A、(M==0)

B,(M==l)

C、(M!=0)

D、(M!=l)

4、在7位ascii碼中,除了表示數(shù)字、英文大小寫字母外,還有幾個字符和符號

A、63

B、66

C、80

D、32

5、以下選項中合法的實型常數(shù)是o

A、5E2.0

B、E-3

C、2E0

D、1.3E

6、以下敘述中錯誤的是o

A、用戶所定義的標識符允許使用關(guān)鍵字

B、用戶所定義的標識符應盡量做到”見名知意”

C、用戶所定義的標識符必須以字母或下劃線開頭

D、用戶定義的標識符中,大、小寫字母代表不同標識

7、若有以下定義和語句:doubler=99,*p=&r;*p=r;則以下正確的敘述

A、以下兩處的*p含義相同,都說明給指針變量p賦值

B、在''doubler=99,*p=&r;"中,把r的地址賦值給了p所指的存

儲單元

C、語句H*p=r;"把變量r的值賦給指針變量p

D、語句"*p=r;"取變量r的值放回r中

8、下列不正確的轉(zhuǎn)義字符是_______o

A、、

1

C、’

D、’088’

9、以下字符常量中不合法的是o

A、

B、

C、K

D、‘整‘

10、在下列字符中,其ascii碼值最小的一個是o

A、空格字符

B、0

C、A

D、a

11、c語言的程序一行寫不下時,可以()。

A、用逗號換行

B、用分號換行

C、在任意一空格處換行

D、用回車符換行

12、下列賦值語句錯誤的是。

A、A

B、i==0;

C、i=i+l:

D、i+=l:

13、下列數(shù)據(jù)中,為字符的是。

A、'AB'

B、"A"

C、How

D、'A'

14、設ch是char型變量,其值為c,且有下面的表達式ch=(ch>=,a'&&ch<

=,z')?(ch+32):ch上面表達式的值是o

A、C

B、c

C、Z

D、z

15、設a為整型變量,不能正確表達數(shù)學關(guān)系10<a<15的c語言表達式

是.

A、10<a<15

B、a==ll|a==121|a==13|a=14

C、a>10&aa<15

D、!(a<=10)&&!(a>=15)

16、若題中各變量已正確定義并賦值,下面符合c語法的表達式是o

A、a%=7.6;

B、a++,a=7+b+c

C、int(12.3)%4

D、a=c+b=a+7

17、若已定義x和y為double類型,則表達式x=l;y=(x+3)/2的值是

A、1

B、2

C、2.00000

D、2.50000

18、有說明語句:inta,b;如果輸入111322333,使得a的值為lll,b的值為

333,則以下正確的語句是o

A、scanf(n%3d%*3d%3d\&a,&b);

B、scanf(M%*3d%3d%3d\&a,&b);

C、scanf(M%3d%3d%*3d\&a,&b):

D、scanf(rt%3d%*2d%3d\&a,&b);

19、設a為整型變量,初值為12,執(zhí)行完語句a+=a-=a*a后,a的值是()。

A、552

B、144

C、264

D、-264

20、c語言double中類型數(shù)據(jù)占字節(jié)數(shù)為一。

A、4

B、8

C、12

D、16

二、控制結(jié)構(gòu)(每小題1分,共10分)

1、若所用變量都已正確定義,則在以下選項中,非法的表達式是

A、a!=4b==l

B、'a'%3

C.ra'=l/2

D、'a'+32

2、c語言中,關(guān)系表達式和邏輯表達式的值是________o

A、0

B、0或1

C、1

D、T或F

3、以下if語句書寫正確的是o

A、if(x=0;)

printf(M%fn,x);

elseprintf(',%fH,-x);

B、if(x>0)

x=x+l;printfx);

elseprintf(H%fn,-x);

C、if(x>0);

x=x+l;printfx);

elseprintf(H%fM,-x);

D、if(x>0)

x=x+l;printfx)

elseprintf(0%fM,-x);

4、在c程序中,判邏輯值時,用"非0"表示邏輯值“真“,又用“0"表示邏輯值”假工

在求邏輯值時,邏輯真和邏輯假可分別表示為

A、10

B、01

C、非0非0

D、11

5、有以下程序

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

6、if語句的基本形式是:if(表達式)語句,以下關(guān)于“表達式”

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論