C語(yǔ)言程序設(shè)計(jì)試題_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)試題_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)試題_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)試題_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)試題_第5頁(yè)
已閱讀5頁(yè),還剩248頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

班號(hào)

C語(yǔ)言試題姓名

題號(hào)―-二三五七八九十總分附加題

分?jǐn)?shù)

一、選擇題:(20分,每題2分)

1.以下不正確的C語(yǔ)言標(biāo)識(shí)符是()o

A.ABCB.abcC.a_bcD.ab.c

2.C程序是由構(gòu)葭的。

A.主程序與子程序

B.主函數(shù)與若干子函數(shù)

C.一個(gè)主函數(shù)與一個(gè)其它函數(shù)

D.主函數(shù)與子函數(shù)

3.以下說(shuō)法中正確的是:o

A.在C語(yǔ)言中,實(shí)參與其對(duì)應(yīng)的形參各占獨(dú)立的存儲(chǔ)單元;

B.在C語(yǔ)言中,實(shí)參與其對(duì)應(yīng)的形參共占同一個(gè)存儲(chǔ)單元;

C.在C語(yǔ)言中,只有當(dāng)實(shí)參與其對(duì)應(yīng)的形參同名時(shí),才共占

同一個(gè)存儲(chǔ)單元;

D.在C語(yǔ)言中,形參是虛擬的,不占存儲(chǔ)單元。

4.設(shè)n=3;則n++的結(jié)果是()。

A.2B.3C,4D.5

5.設(shè)整型變量n=10,i=4,則賦值運(yùn)算n%=i+l執(zhí)行后,n的值是()。

A.0B.1C.2D.3

6.凡是函數(shù)中未指定存儲(chǔ)類別的局部變量其隱含的存儲(chǔ)類別是

()。

A.自動(dòng)(auto)B.靜態(tài)(static)C.外部(extern)D.寄存

器(register)

7.在while(x)語(yǔ)句中的x與下面條件表達(dá)式等價(jià)的是:0

A.x==0B.x==lC.x!=lD.x!=0

8.若有以下說(shuō)明和語(yǔ)句:

structworker

intno;

班級(jí):學(xué)號(hào):姓名:

char*name;

}work,*p=&work;

則以下引用方法不正確的是()o

A.work.noB.(*p).noC.p->noD.work->no

9.以下對(duì)二維數(shù)組進(jìn)行正確初始化的是()。

A.inta[2][3]={{l,2},{3,4},{5,6}};

B.inta[][3]={l,2,3,4,5,6);

C.inta[2][]={l,2,3,4,5,6);

D.inta[2][]={{l,2},{3,4}};

10.二維數(shù)組a有m歹U,則在之前的元素個(gè)數(shù)為:。

Ax

z—j*m+i

B\

7Ji*m+j

cx

z)i*m+j-l

D\

7?

二、給出下列程序的運(yùn)行結(jié)果:(20分,前四題每題3分,

后兩題每題4分)

1.#include<stdio.h>

main()

(

inti=16,j,x=6;

j=i+++l;

x*=i弓;

printfC%d,%d\n”,j,x);

運(yùn)行結(jié)果是:

2.#include<stdio.h>

#include<math.h>

main()

(

inta=l,b=4,c=2;

floatx=10.5,y=4.0,z;

z=(a+b)/c+sqrt((double)y)*1.2/c+x;

printfC6%f\n,\z);

2

班級(jí):學(xué)號(hào):姓名:

運(yùn)行結(jié)果是:

3.#include<stdio.h>

main()

{

inta,b,c,d;

a=c=O;

b=l;

d=20;

if(a)d=d-10;

elseif(!b)

if(!c)d=25;

elsed=15;

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

)

運(yùn)行結(jié)果:

4.main()

(

inti=10;

switch(i){

case9:i+=l;

case10:i+=l;

case11:i+=l;

default:i+=l;

)

printfi^%d,\i);

}

運(yùn)行結(jié)果:

5.#include<stdio.h>

main()

(

inta[]={l,2,3,4},i,j,s=0;

j=l;

for(i=3;i>=0;i-)

s=s+a[i]*j;

3

班級(jí):學(xué)號(hào):姓名:

j=j*io;

)

printf(,ls=%d\n,l,s);

)

運(yùn)行結(jié)果:

6.func(intx)

{x=20;}

main()

(

intx=10;

func(x);

printf("%d”,x);

}

運(yùn)行結(jié)果:

三、閱讀程序,在標(biāo)有下劃線的空白處填入適當(dāng)?shù)谋磉_(dá)

式或語(yǔ)句,使程序完整并符合題目要求。(20分,每空2

分)

1.已知能被4整除而不能被100整除的或者能被400整除的年份

是潤(rùn)年,則判斷某一年是否是潤(rùn)年的程序如下:

main()

(

intyear,leap;

scanK"%d”,&year);

if()

leap=l;

elseleap=0;

iff)printfT是潤(rùn)年”);

elseprintf("不是潤(rùn)年");

)

2.將100至200間不能被3整除的數(shù)輸出:

main()

(

intn;

4

班級(jí):學(xué)號(hào):姓名:

for(n=100;n<=200;n++)

(

if(n%3=0):

printfC%d”,n);

3.判斷m是否是素?cái)?shù)

#include<math.h>

main()

(

intm,i,k;

scanff%dM,&m);k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==O);

if(i>=k+l)printf(u%disaprimenumber\n,,,m);

elseprintf("%disnotaprimenumber\n,,,m);

)

4.給定一3*4的矩陣,求出其中值最大的元素的值,及所在的行

列號(hào)。

main()

(

inti,j,row=0,colum=0,max;

staticinta[3][4]={{l,2,3,4}{9,8,7,6}{10,40,-4,4}};

for(i=0;i<=2;i+4-)

for(j=0;j<=3;j++)

if(a[i][j]>max)

{

max=a[i][j];

print出“max=%d,row=%d,colum=%d\rT,max,row,colum);

5.下面函數(shù)的功能是將兩個(gè)字符串s和t連接起來(lái)。

char*conj(char*s,char*t)

5

班級(jí):學(xué)號(hào):姓名:

char*p=s;

while(*s):

while(*t)

(

*s=;

s++;

t++;

}

*s='\0';

四、編程(40分)

1.計(jì)算1-1/2+1/3-1/4+...+1/99-1/100+…,直到最后一項(xiàng)的絕對(duì)值小

于10"為止。(13分)

2.輸入一行字符,分別統(tǒng)計(jì)求出其中英文字母、空格、數(shù)字和其

他字符的個(gè)數(shù)并輸出結(jié)果。(13分)

3.任意從鍵盤輸入10個(gè)整數(shù),按從小到大的順序排序,并輸出

結(jié)果。(14分)

班號(hào)

C語(yǔ)言考試題姓名

題號(hào)一二三四ii.六七八九I-總分附加題

分?jǐn)?shù)

說(shuō)明:請(qǐng)將答案寫在答題紙的相應(yīng)題號(hào)后面?。。。?

一、填空題:(24分每空1.5分)

1.已知:int*p,a;則語(yǔ)句p=&a;中的運(yùn)算符&的含義

6

班級(jí):學(xué)號(hào):姓名:

是(1)。

2.凡在函數(shù)體內(nèi)沒(méi)有明顯存儲(chǔ)類別說(shuō)明的變量是

(2)o

3.已知:struct

{intk;

charc;

floata;}test;則sizeof(test)的值是

(3)o

4.程序填空:

(1)下面的程序是main函數(shù)利用函數(shù)abed來(lái)交換

main中的兩個(gè)變量的值。

#include<stdio.h>

main()

{floatx=10,y=20;

abcd(4);

printf("%f,%E',x,y);

)

abcd(x,y)

(5):

{floattemp;

tenw=(6):

7

班級(jí):學(xué)號(hào):姓名:

(7);

(8):

)

(2)下面的程序是使用冒泡法對(duì)輸入的10個(gè)數(shù)據(jù)

從小到大排序。排好序的10個(gè)數(shù)分兩行輸出。

#include<stdio.h>

main()

U9);

intj,k;

printf(4tinput10numbersplease\n");

for(j=0;(10);i++)

scanfC'%f\&a[j]);

printf("\n");

for(j=0;(11);i++)

for(k=0;£12};k++)

if(13)

{x=a[k];

(14);

a[k+l]=x;

8

班級(jí):學(xué)號(hào):姓名:

printf("Thesorted10numbers:\n^^);

for(i=0;(15);i++)

{if(16)

printf("\n”);

)

printf("\rT);

二、單項(xiàng)選擇題:(20分每題2分)

1.C語(yǔ)言中基本數(shù)據(jù)類型包括()。

A,整型、實(shí)型、邏輯型

B.整型、實(shí)型、字符型

C.整型、字符型、邏輯型

D.整型、實(shí)型、邏輯型、實(shí)型

2.已知inti,a;執(zhí)行語(yǔ)句“i=(a=2*3,a*5),a+6;“后,

變量a的值是()。

A.6B.12C.30D.36

3.C語(yǔ)言中規(guī)定函數(shù)的返回值的類型是由()。

A.return語(yǔ)句中的表達(dá)式類型所決定

B.調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型所決定

C.調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定

D.在定義該函數(shù)時(shí)所指定的函數(shù)類型所決定

4.不能進(jìn)行++和一運(yùn)算的數(shù)據(jù)類型是()。

A.指針B.doubleC.intD.long

9

班級(jí):學(xué)號(hào):姓名:

5.為了判斷兩個(gè)字符串si和s2是否相等,應(yīng)當(dāng)使用

()。

A.if(sl==s2)B.if(sl=s2)

C.if(strcpy(sl,s2))Dif

(strcmp(sl,s2))

6.若有以下說(shuō)明和語(yǔ)句:

structstu

{intno;

char*name;

}student,*p=&student;

則以下引用方法不正確的是()o

A.student.noB.(*p).no

C.p->noD.student->no

7.以下不是死循環(huán)的語(yǔ)句為()o

E.for(;;x+=k);

F.while(1){x++};

G.for(k=10;;k--)sum+=k;

H.for(;(c=getchar())!=,\n,;)printf(t4%c,,,c);

8.以下錯(cuò)誤的描述是()o

A.不同的函數(shù)中可以使用相同的變量名

B.形式參數(shù)是局部變量

C.一個(gè)函數(shù)內(nèi)部定義的變量只能在本函數(shù)范圍內(nèi)有

效D.在一個(gè)函數(shù)內(nèi)部的復(fù)合語(yǔ)句中定義的變量

可以在本函數(shù)范圍內(nèi)有效

9.若用數(shù)組名作為函數(shù)調(diào)用時(shí)實(shí)參,則實(shí)際上傳遞給形

參的是()。

A.數(shù)組首地址B.數(shù)組的第一個(gè)元素值

10

班級(jí):學(xué)號(hào):姓名:

C.數(shù)組中全部元素的值D.數(shù)組元素的個(gè)數(shù)

10.已知inta,*p=&a;則為了得到變量a的值,下列錯(cuò)

誤的表達(dá)式是()o

A.*&pB.*pC.p[0]D.*&a

三、判斷下列問(wèn)題描述及語(yǔ)句正確與否,正確的打“J”。

(16分每題2分)

1.C的關(guān)鍵字都是小寫的。

2.一個(gè)復(fù)合語(yǔ)句是作為一個(gè)語(yǔ)句處理的且在邏輯上相互關(guān)聯(lián)的

一組語(yǔ)句。

3.#definePI=3.14159

4.局部變量在進(jìn)入代碼塊時(shí)生成,退出代碼塊時(shí)消失。

5.inta=123456;

6.函數(shù)可以嵌套定義,也可嵌套調(diào)用。

7.switch與if不同,switch只能測(cè)試是否相等,而if中還能測(cè)

試關(guān)系和邏輯表達(dá)式。

8.break和continue語(yǔ)句都可用于選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中。

四、讀程序,寫出運(yùn)行結(jié)果:(20分每題5分)

1.main()

{inta=5,b=4,x,y;

x=a++*a++*a++;

printf(ua=%d,x=%d\n,,,a,x);

y=--b*--b*--b;

printf("b=%d,y=%d\n”,b,y);

2.#include<stdio.h>

u

班級(jí):學(xué)號(hào):姓名:

main()

{structs1

{charc[4],*s;}sl={"abc'',"def}

structs2

{char*cp;

structsi

ss1;}s2={“ghi”,{“jkl”,“mno”}};

printf("%c%c\n”,s1.c[O],*sl.s);

printf("%s%s\n”,s1.c,s1.s);

printf(t4%s%s\n,,,s2.cp,s2.ss1.s);

printf("%s%s\n”,++s2.cp,++s2.ss1.s);

)

3.#include<stdio.h>

func(intb[])

{intj;

for(j=0;j<4;j++)

b[j]=j;

)

main()

12

班級(jí):學(xué)號(hào):姓名:

{inta[4],k;

func(a);

for(k=0;k<4;k++)

printf("%d\n”,a[k]);

)

6.voidfun()

{staticinta=5;

a++;

printf("a=%d\n”,a);

)

main()

(

intm;

for(m=0;m<=l;m++)

fun();

)

五、編程(20分)

1.有一個(gè)3x4的矩陣,找出最大值及該值所在位置。(10分)

2.寫一個(gè)函數(shù),計(jì)算x的n次方。(10分)

13

班級(jí):學(xué)號(hào):姓名:

班號(hào)

C語(yǔ)言程序設(shè)計(jì)姓名

試題

班級(jí):學(xué)號(hào):姓名:

題號(hào)—>二三四五六七八九十總分

分?jǐn)?shù)

注意:請(qǐng)將答案寫在答題紙上,否則無(wú)效!??!

一、判斷題:(12分每題2分)

1、C語(yǔ)言規(guī)定:在一個(gè)源程序中,main函數(shù)的位置必須在最開(kāi)始。

2、假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,b++,a+b)的值是8。

3、凡是函數(shù)中未指定存儲(chǔ)類別的局部變量,其隱含的存儲(chǔ)類別為靜態(tài)存儲(chǔ)。

4、C語(yǔ)言中規(guī)定函數(shù)的返回值的類型是由return語(yǔ)句中的表達(dá)式類型所決

定。

5、在C語(yǔ)言中對(duì)文件操作必須先關(guān)閉當(dāng)前文件,然后再打開(kāi)?個(gè)新文件。

6、C語(yǔ)言程序的基本單位是語(yǔ)句。

二、選擇題:(20分每題2分)

1、假設(shè)已定義chara[10]和char*p=a,下面的賦值語(yǔ)句中,正確的是:

A)a[10]='TurboC";B)a="TurboC”;

C)*p="TurboC";D)p="TurboC”;

2、下面關(guān)于運(yùn)算符優(yōu)先順序的描述中正確的是:

A)關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符<邏輯與運(yùn)算符

B)邏輯運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符

C)賦值運(yùn)算符〈邏輯與運(yùn)算符V關(guān)系運(yùn)算符〈算術(shù)運(yùn)算符

D)算術(shù)運(yùn)算符<關(guān)系運(yùn)算符<賦值運(yùn)算符〈邏輯與運(yùn)算符

3、以下正確的描述是。

A)continue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

B)只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句

C)在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同

D)從多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句

4、用8位無(wú)符號(hào)二進(jìn)制數(shù)能表示的最大十進(jìn)制數(shù)為

A)127B)128C)255D)256

5、下列敘述中正確的是:

A)C語(yǔ)言中既有邏輯類型也有集合類型

15

班級(jí):學(xué)號(hào):姓名:

B)C語(yǔ)言中沒(méi)有邏輯類型但有集合類型

C)C語(yǔ)言中有邏輯類型但沒(méi)有集合類型

D)C語(yǔ)言中既沒(méi)有邏輯類型也沒(méi)有集合類型

(第1頁(yè)共8頁(yè))

6、以下對(duì)C語(yǔ)言函數(shù)的有關(guān)描述中,正確的是:

A)調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能

傳送給實(shí)參

B)函數(shù)既可以嵌套定義又可以遞歸調(diào)用

C)函數(shù)必須有返回值,否則不能使用函數(shù)

D)程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個(gè)源程序文件

7、在C語(yǔ)言中,不正確的int類型的常數(shù)是:

A)32768B)0C)037D)Oxaf

8、以卜敘述中不正確的是:

A)在不同的函數(shù)中可以使用相同名字的變量

B)函數(shù)中的形式參數(shù)是局部變量

C)在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D)在一個(gè)函數(shù)內(nèi)的復(fù)合語(yǔ)句中定義的變量在本函數(shù)范圍內(nèi)有效

9、以下說(shuō)法中正確的是:

A)ttdefine和printf都是C語(yǔ)句

B)#define是C語(yǔ)句,而printf不是

C)printf是C語(yǔ)句,但#define不是

D)ttdefine和printf都不是C語(yǔ)句

10、若有以下定義和語(yǔ)句:doubler=99,*p=&r;*p=r;則以下

正確的敘述是:

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

B)在“doubler=99,*p=&r;”中,把r的地址賦值給了p所

指的存儲(chǔ)單元

0語(yǔ)句"*p=r;”把變量r的地址值賦給指針變量p

D)語(yǔ)句"*p=r;”取變量r的值放回r中

三、填空題:(24分每空2分)

1、下面程序的功能是:輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞,單詞之間

用空格分開(kāi)。請(qǐng)?zhí)羁胀瓿伞?/p>

16

班級(jí):學(xué)號(hào):姓名:

#include<stdio.h>

main()

{charstr[81];

intI,(【1】);

charc;

gats(str);

fbr(I=O;(【21)!=,\0,;I++)

if^c==,,)word=0;

elseif(【3】)

{word=l;

(【4】)}

printf(44Thereare%dwordinline.\n",num);

)

2、下面程序的功能是:用選擇排序法對(duì)數(shù)組中10個(gè)數(shù)據(jù)按由小到大排序。請(qǐng)?zhí)羁胀?/p>

成。

voidsort(inta[],intn)

{(15L)

fbr(I=O;I<n-l;I++)

{(【61)forO=I+l;j<n;j++)

if(a[j]<a[k])k=j;

if((17])){t=a[k];a[k]=a[I];a[I]=t;}

main()

{intb[10],I;

printff'enterthearrayVn^);

for(I=0;I<10;I++)

scanf("%d”.&b[I]);

([8L)

printff'thesortedarray:\n?,);

fbr(I=0;I<10;I++)

printfC4%d<4,b[I]);

printfT'n");

}

3、判斷m是否是素?cái)?shù)

#include<math.h>

main()

17

班級(jí):學(xué)號(hào):姓名:

intm,i,k;

scanf("%d",&m);(【91)

for(i=2;i<=k;i++)

if(m%i=O)([10]);

if(i>=k+l)printf("%disaprimenumber\n,,,m);

elseprintR"%disnotaprimenumber\n,9,m);

}

4、假設(shè)當(dāng)年產(chǎn)值為100,工業(yè)產(chǎn)值的增長(zhǎng)率分別為6%、8%、10%、12%時(shí),

求工業(yè)產(chǎn)值分別經(jīng)過(guò)多少年可實(shí)現(xiàn)翻番。請(qǐng)?zhí)羁胀瓿伞?/p>

main()

{inty[4],i;

floats[4]={100,100,100,100},c[4]={.06,.08,.10,.12};

clrscr();

fbr(i=0;i<4;i-H-)

{y[i]=0;

while(【11】)

{s[i]=s[i]*(l+c[i]);

(【12】))

printf(,,\ny=%d\ts=%.2f\tc=%.2f,,y[i],s[i],c[i]);

四、讀程序,寫出程序運(yùn)行結(jié)果。(24分每題4分)

1、main()

{intx=10,y=10,I;

for(I=0;I>8;y=++I)

printf(''%d%d〃,x—,y);

)

2、main()

{intm=37,n=13;

while(m!=n)

{while(m>n)

m=m?n;

while(n>m)

n-=m;

班級(jí):學(xué)號(hào):姓名:

printfC'm=%d\n”,m);

)

3、main()

{intx=9;

fbr(;x>O;x—)

{if(x%3==0){printfC%d”,--x);

continue;}

}

}

4^main()

{inta=7,b=2;

floatx=2.5,y=4.7,z;

z=x+a%3*(int)(x+y)%2/4;

printf(ct%f\n,,,z);

z=(a+b)/2+(int)x%(int)y;

printf("%f\z);

}

5、main()

{intx[]={0,l,2,3,4,5,6,7,8,9);

ints,I,*p;

s=0;

p=&x[0];

fbr(I=l;klO;I+=2)

s+=*(p+I);

printf(usum=%d,\s);

)

6>main()

{intk=4,m=l,p;

p=func(k,m);

printfC%d”,p);

p=fiinc(k,m);

printfitn%dn,p);

)

func(inta,intb)

{staticintm=0,i=2;

i+=m+l;

m=i+a+b;

retum(m);

19

班級(jí):學(xué)號(hào):姓名:

五、編程題:(20分每題10分)

1、利用指針完成。輸入兩個(gè)整數(shù),按先大后小的順序輸出。

2、編程完成兩個(gè)字符串的連接。(不使用strcat()函數(shù))。

一、判斷題:(12分)

1、2、3、4、5、6、

二、選擇題:(共20分,每題2分)

1、2、3、4、

5、6、7、8、

9、10、

三、填空題:(共24分,每空2分)

1、2、3、4、

5、6、7、8、

9、10、11、12、

四、讀程序,寫出程序的運(yùn)行結(jié)果(共24分,每題4分)

1、2、3、

4、5、6、

五、編程:(20分)

20

班級(jí):學(xué)號(hào):姓名:

1、

2、

21

班級(jí):學(xué)號(hào):姓名:

22

班級(jí):學(xué)號(hào):姓名:

、填空題(6分,每題2分)

1.C語(yǔ)言中基本數(shù)據(jù)類型包

括O

2.已知能被4整除而不能被100整除的或者能被400整除的年

份是閏年,則判斷某一年year是否是閏年的表達(dá)式為:

3.設(shè)有下列登記表,采用最佳方式對(duì)它進(jìn)行類型定義。

姓名性別出生年月家庭收入狀況家庭收入

年月日低收入中等收入高收入狀況標(biāo)記

姓名用name表示,性別用sex表示,出生年月用birthDay表示,年用

year表示,月用month表示,日用date表示,家庭收入狀況用salary

表示,低收入用low表示,中等收入用middle表示,高收入用high表示,

家庭收入狀況標(biāo)記用mark表示。

23

班級(jí):學(xué)號(hào):姓名:

二、判斷下列問(wèn)題描述正確與否,正確的打“9’,錯(cuò)誤

的打“X”。(3分,每題1分)

1.#defineP1=3.14159;不是C語(yǔ)句。()

2.在C語(yǔ)言中,可以用typedef定義一種新的類型。()

3.共用體所占的內(nèi)存空間大小取決于占空間最多的那個(gè)成員變

量。()

三、選擇題:(10分,每題1分)

1.以下不正確的C語(yǔ)言標(biāo)識(shí)符是()。

A.ABIB.a2_bC._ab3D.4ab

2.若有定義int(*p)[4],則標(biāo)識(shí)符p是一個(gè)o

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

B、指向函數(shù)的指針變量

C、指向有四個(gè)整型元素的一維數(shù)組的指針變量

D、指針數(shù)組名,有四個(gè)元素,每個(gè)元素均為一個(gè)指向整型變

量的指針

3.若用數(shù)組名作為函數(shù)調(diào)用時(shí)實(shí)參,則實(shí)際上傳遞給形

參的是()□

A.數(shù)組首地址B.數(shù)組的第一個(gè)元素值

C.數(shù)組中全部元素的值D.數(shù)組元素的個(gè)數(shù)

4.C語(yǔ)言中規(guī)定函數(shù)的返回值的類型是由()。

E.return語(yǔ)句中的表達(dá)式類型所決定

F.在定義該函數(shù)時(shí)所指定的函數(shù)類型所決定

G.調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定

H.調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型所決定

5.以下錯(cuò)誤的描述是()。

A.不同的函數(shù)中可以使用相同的變量名

B.形式參數(shù)是局部變量

24

班級(jí):學(xué)號(hào):姓名:

C.一個(gè)函數(shù)內(nèi)部定義的變量只能在本函數(shù)范圍內(nèi)有

D.在一個(gè)函數(shù)內(nèi)部的復(fù)合語(yǔ)句中定義的變量可以在

本函數(shù)范圍內(nèi)有效

6.為了判斷兩個(gè)字符串si和s2是否相等,應(yīng)當(dāng)使用

()oA.if(si==s2)B.if(si=

s2)

C.if(strcpy(slzs2))

D.if(strcmp(si,s2)==0)

7.在while(x)語(yǔ)句中的x與下面條件表達(dá)式等價(jià)的

是:0

A.x!=0B.x==lC.x!=1D,x==0

8.若有以下說(shuō)明和語(yǔ)句:

structstu

(

intno;

char*name;

}studentf*p=&student;

則以下引用方法不正確的是()o

A.student.noB.(*p).no

C.p->noD.student->no

9.以下對(duì)二維數(shù)組進(jìn)行正確初始化的是()。

I.inta[2][3]={{1,2},{3,4},{5,6}};

J.inta[2][3]={{1,2},{},{4,5}};

K.inta[][3]={1,2,3,4,5,6);

L.inta[2][]={{1,2},{3,4}};

10.二維數(shù)組a有m行n歹U,則在a[i][j]之前的元素個(gè)數(shù)為

()o

A.j*n+iB.i*n+jC.i*n+j-1D.i*n+j+1

四、寫出下列程序的運(yùn)行結(jié)果。(4分,每題1分)

25

班級(jí):學(xué)號(hào):姓名:

1?#include<stdio.h>

voidfun(intx)

(

x=20;

)

main()

(

intx=10;

fun(x);

printf(nx=%d\n”,x);

}

運(yùn)行結(jié)果是:

2.#include<stdio.h>

voidfun(intb[4])

(

intj;

for(j=0;j<4;j++)

b[j]=j;

}

main()

(

inta[4]={1,2,3,4},k;

fun(a);

for(k=0;k<4;k++)

printf(H%d\nn,a[k])

}

運(yùn)行結(jié)果是:

3.#include<stdio.h>

main()

inti=10;

26

班級(jí):學(xué)號(hào):姓名:

switch(i)

case9:i+=10;

case10:i+=10;

case11:i+=10;

break;

default:i+=10;

)

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

)

運(yùn)行結(jié)果是:

4.#include<stdio.h>

voidfun()

(

staticinta=5;

a++;

printf("a=%d\n”,a);

)

main()

(

intm;

for(m=0;m<=1;m++)

fun();

)

運(yùn)行結(jié)果是:

五、閱讀程序,在標(biāo)有下劃線的空白處填入適當(dāng)?shù)谋磉_(dá)

式或語(yǔ)句,使程序完整并符合題目要求。(3分,每空1

分)

從鍵盤輸入10個(gè)整型數(shù)據(jù),放入數(shù)組a中,求其最大值及其

所在元素的下標(biāo)位置,并輸出。

main()

(

inta[10],n,pos,max;

27

班級(jí):學(xué)號(hào):姓名:

for(n=0;n<10;n++)

scanf(,&a[n]);

max=;

pos=;

for(n=0;n<10;n++)

(

if(a[n]>max)

(

max=a[n];

pos=;

)

)

printf(Mmax=%d,pos=%d\nn,max,pos);

)

六、下面程序是有錯(cuò)誤的程序,請(qǐng)找出其中的錯(cuò)誤,并

將正確的語(yǔ)句寫在相應(yīng)錯(cuò)誤語(yǔ)句的右方空白處。(5分)

#include<stdio.h>

?include<math.h>

intisprime(intm)

main()

(

intnzflag;

printf(nInputn:n);

scanf(”%d”,n);

flag=isprime(n);

if(flag)

printf(Yes!\nn)

else

printf(”No!\n");

)

/*函數(shù)功能:判斷m是否為素?cái)?shù)

函數(shù)參數(shù):整型變量m

返回值:返回1時(shí),表示m是素?cái)?shù);返回。時(shí),表示m不是

28

班級(jí):學(xué)號(hào):姓名:

素?cái)?shù)

*/

intisprime(int*m)

(

inti;

for(i=2;i<=sqrt(m);i++)

{

if(m%i=0)return0;

)

return1;

}

七、在下面任意選擇2道題編程(14分,每題7分)

1.從鍵盤任意輸入某班30個(gè)學(xué)生的成績(jī),將成績(jī)按照由高到

低順序打印。

2.自己定義一個(gè)函數(shù),以實(shí)現(xiàn)和函數(shù)strlen相同的功能,

即任意輸入一個(gè)字符串,調(diào)用該函數(shù)可以計(jì)算輸入字符串

的實(shí)際長(zhǎng)度,然后打印

3.編程計(jì)算1!+2!+3!+4!+….+10!的值

29

班級(jí):學(xué)號(hào):姓名:

30

班級(jí):學(xué)號(hào):姓名:

班號(hào)

C語(yǔ)言考試題姓名

題號(hào)―-二三四五六七八九十總分附加題

分?jǐn)?shù)

說(shuō)明:考試成績(jī)分為兩部分:實(shí)驗(yàn)占10%,卷面筆試占

90%,滿分為100分。本試卷為卷面筆試部分,卷面滿

分為90分。

一、填空題(10分,第1小題4分,其余每空1分)

1.設(shè)有下列登記表,請(qǐng)采用最佳方式定義一利數(shù)據(jù)類型來(lái)表示這

些數(shù)據(jù)的集合。

婚姻狀況marital

姓名性別職業(yè)

未婚離婚日期婚姻狀況

namesexprofession已婚marrieddivorcedDay

年齡標(biāo)記

marry

single配偶子女

年月B

Age姓名人數(shù)Flag

yearmonthdate

其中,配偶姓名用spouseName表示,子女人數(shù)用children表

示。

31

班級(jí):學(xué)號(hào):姓名:

2.C語(yǔ)言中構(gòu)造數(shù)據(jù)類型包

括、、o

3.C語(yǔ)言中用表示邏輯值“假”,用表示邏

輯值“真”。

4.char*p[10];這條語(yǔ)句的含義是:

O

二、判斷下列問(wèn)題描述正確與否,正確的打“4”,錯(cuò)誤

的打“義”。(4分,每題1分)

1.如果在程序中定義靜態(tài)變量和全局變量時(shí),未明確指明其初

始值,那么它們可以在程序編譯階段自動(dòng)被初始化為0值。

()

2.在C語(yǔ)言中,可以用typedef定義-種新的數(shù)據(jù)類型。()

3.在C語(yǔ)言中,實(shí)參與其對(duì)應(yīng)的形參各占獨(dú)立的存儲(chǔ)單元。

()

4.在C語(yǔ)言中,函數(shù)的定義可以嵌套。()

三、選擇題:(10分,每題2分)

1.若用數(shù)組名作為函數(shù)調(diào)用時(shí)的實(shí)參,則實(shí)際上傳遞給

形參的是()o

32

班級(jí):學(xué)號(hào):姓名:

A.數(shù)組的首地址B.數(shù)組的第一個(gè)元素值

C.數(shù)組中全部元素的值D.數(shù)組元素的個(gè)數(shù)

2.判斷兩個(gè)字符串si和s2相等,應(yīng)當(dāng)使用()-

A.if(s1==s2)B.if(s1=s2)

C.if(!strcmp(si,s2))D.if

(strcmp(si,s2))

3.在while(x)語(yǔ)句中的x與下面條件表達(dá)式等價(jià)的

是:o

A.x!=0B.x==lC.x!=1D.x==0

4.二維數(shù)組a有m行n歹!J,則在a[i][j]之前的元素個(gè)數(shù)為

()-

A.j*n+iB.i*n+jC.i*n+j-1D.i*n+j+1

5.設(shè)有聲明語(yǔ)句:inta=l,b=0;則執(zhí)行以下語(yǔ)句后輸出

為:。

switch(a)

(

case1:

switch(b)

{

case0:printf(?'**o**");

break;

case1:printf(??**i**?');

break;

}

case2:printf(??**2**n);

break;

}

A)**0**B)**o****2**

C)**o****l****2**D)有語(yǔ)法錯(cuò)誤

四、寫出下列程序的運(yùn)行結(jié)果。(6分,每題2分)

1?#include<stdio.h>

voidFun(int*y)

(

printf(n*y=%d\n",*y);

*y=20;

printf(n*y=%d\n",*y);

33

班級(jí):學(xué)號(hào):姓名:

}

main()

(

intx=10;

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

Fun(&x);

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

)

運(yùn)行結(jié)果是:

2.#include<stdio.h>

intFun(intx)

(

staticinty=0;

y+=x;

returny;

)

main()

(

intx=10,y=0,k;

for(k=0;k<2;k++)

{

y=Fun(x);

printf(My=%d\n”,y);

)

)

運(yùn)行結(jié)果是:

3.#include<stdio.h>

34

班級(jí):學(xué)號(hào):姓名:

main()

(

chara[]="programming",b[]="language";

char*pl,*p2;

inti;

pl=a;

p2=b;

for(i=0;i<7;i++)

{

if(*(pl+i)==*(p2+i))

printf("%c",*(pl+i));

)

printf("\n");

)

運(yùn)行結(jié)果是:

五、閱讀程序,在標(biāo)有下劃線的空白處填入適當(dāng)?shù)谋磉_(dá)

式或語(yǔ)句,使程序完整并符合題目要求。(10分,每空2

分)

1.下面這個(gè)程序用于讀入5個(gè)整數(shù),當(dāng)程序讀入的數(shù)據(jù)為正整數(shù)

時(shí),則顯示該數(shù),否則,不顯示。讀入5個(gè)數(shù)據(jù)后,程序結(jié)束運(yùn)

行。

#include<stdio.h>

main()

(

inti,n;

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

(

printf(nPleaseentern:n);

scanf("%d",&n);

if(n<=0);

printf(nn=%d\nn,n);

}

printf("Pr

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論