c語言試題及答案

雕龍文庫 分享 時間: 收藏本文

c語言試題及答案

c語言試題及答案

C語言是一門通用計算機編程語言,應(yīng)用廣泛。小編收集了c語言試題及答案,歡迎閱讀。

c語言試題

一 選擇題(7分,每小題0.5分)

1.C語言源程序的基本單位是( )。

A 過程 B 函數(shù) C 子程序 D 標(biāo)識符

2.下列程序的輸出結(jié)果是( )。

main( )

{ int a=7,b=5;

printf("%d ",b=b/a);

}

A 5 B 1 C 0 D不確定值

3.假設(shè)變量a,b均為整型,表達式(a=5,b=2,a>b?a++:b++,a+b)的值是( )。

A 7 B 8 C 9 D 2

4.設(shè)a為int型變量,執(zhí)行下列賦值語句后,a的取值分別是( )。

a=125.534; a=(int)125.521%4; a=5<<2;

A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20

5.設(shè)有如下程序段,下面描述中正確的是 ( )。

int k=10; while(k=0) k=k-1;

A 循環(huán)執(zhí)行一次 B循環(huán)是無限循環(huán) C循環(huán)體語句一次也不執(zhí)行 D循環(huán)體語句執(zhí)行一次

6.以下程序的輸出結(jié)果為( )。

int i;

void prt( )

{ for(i=5;i<8;i++) printf("%c",'*');

printf(" ");

}

main( )

{ for(i=5;i<=8;i++) prt( );

}

A *** B *** *** *** *** C *** *** D * * *

7.在C語言程序中,以下說法正確的是( )。

A函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套

B函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套

C函數(shù)的定義和函數(shù)的調(diào)用都不可以嵌套

D函數(shù)的定義和函數(shù)的調(diào)用都可以嵌套

8.以下函數(shù)調(diào)用語句中含有( )個實參。

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

A 2 B 3 C 5 D 語法錯誤

9.以下程序的輸出結(jié)果為( )。

#define ADD(x) x*x

main( )

{ int a=4,b=6,c=7,d=ADD(a+b)*c;

printf("d=%d",d);

}

A d=70 B d=80 C d=140 D d=700

10.已知職工記錄描述如下,在Turbo C中,系統(tǒng)為變量w分配( )字節(jié)的空間。

struct worker

{ int no;

char name[20];

char sex;

union

{ int day; int month; int year;}birth;

} w;

A 29 B 20 C 25 D 6

11.設(shè)有以下定義,值為5的枚舉常量是( )。

enum week{sun,mon=4,tue,wed,thu,fri,sat} w;

A tue B sat C fri D thu

12.下面選項中正確的賦值語句是(設(shè) char a[5],*p=a;)( )。

A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd";

13.設(shè)有以下程序段,則值為6的表達式是( )。

struct st { int n; struct st *next;};

static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p;

p=&a[0];

A p++->n B ++p->n C p->n++ D (*p).n++

14.C語言中的文件類型只有( )。

A 索引文件和文本文件兩種 B 文本文件一種

C 二進制文件一種 D ASCII碼文件和二進制文件兩種

二 判斷對錯,對的劃“√”,錯的劃“×”(5分,每小題0.5分)

1.在Turbo C中,整型數(shù)據(jù)在內(nèi)存中占2個字節(jié)。( )

2.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的輸出結(jié)果為A。( )

3.break語句用在循環(huán)體中,可結(jié)束本層循環(huán),continue語句用在循環(huán)體中,可結(jié)束本次循環(huán)。( )

4.函數(shù)的遞歸調(diào)用不過是一個函數(shù)直接或間接地調(diào)用它自身。( )

5.函數(shù)strlen("ASDFG ")的值是7。( )

6.通過return語句,函數(shù)可以帶回一個或一個以上的返回值。( )

7.結(jié)構(gòu)體類型只有一種。 ( )

8.char *p="girl";的含義是定義字符型指針變量p,p的值是字符串"girl"。( )

9.若有定義:char *p(char a[10]);則p是函數(shù)名。( )

10.用fopen("file","r+");打開的文件"file"可以進行修改。 ( )

三 寫出下列程序的運行結(jié)果(10分,每小題2分)

1.float average (float array[10])

{ int i;

float aver,sum=array[0];

for (i=1;i<10;i++)

sum=sum+array[i];

aver=sum/10;

return(aver);

}

main( )

{ float score[10]={89,67.5,78,91,56,82.5,65,70,79,88},aver;

int i;

aver=average (score);

printf (“average score is %5.2f ”,aver);

}

2.main( )

{ char a[5]={‘A’,‘B’,‘C’,‘D’,‘E’},*p=a,**pa;

for(p=0;p

printf(“%2c”,*p);

printf(“ ”);

printf(“%2c ”,**(pa=&p));

}

3.main( )

{ int a,b,s=0;

for(a=1,b=1;a<=100;a++)

{ if(b>=20) break;

if(b%3==1)

{ b+=3; continue; }

b-=5;

}

printf(“a=%d b=%d ”,a,b);

}

4.main()

{ printf(“main( ) :%d ”,fact(5));

fact(-5);

}

fact(int value)

{ int f;

if(value<0)

{ printf(“Arg error ");

return(-1);

}

else if(value==1||value==0) f=1;

else f=value*fact(value-1)+1;

printf(“This called value=%d ”,f);

return f;

}

5.main( )

{ int a=012,b=0x12,k=12;

char c=‘102’,d=‘’;

printf(“a=%d b=%d k=%d ”,a,b,k);

printf(“c=%c,d=%c%o ”,c,d,a);

a=‘A’; c=49;

printf(“a=%d c=%c ”,a,c);

}

四 閱讀下列程序,在 處填入適當(dāng)內(nèi)容,使程序完整(8分,每個空1分)

1.有一個3*4矩陣,求其中的最大元素。

max_value( (1) )

{ int i,j,max;

max=array[0][0];

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

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

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

max=array[i][j];

(2) ;

}

main( )

{ int a[3][4], i,j;

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

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

(3) ;

printf(“max value is %d ”,max_value(a));

}

2.輸入x、y兩個整數(shù),按先大后小的順序輸出x、y。

#include “stdio.h”

main( )

{ int x,y, *px,*py, (4) ;

scanf(“%d%d”,&x,&y);

(5) ; (6) ;

if(x

{ p=px; px=py; py=p; }

printf(“x=%d,y=%d ”,x,y);

printf(“MAX=%d,MIN=%d ”,*px,*py);

}

3.用選擇排序法對任意10個整數(shù)按照由小到大排序。

main()

{ int a[11],i,j,k,t;

printf("Please input 10 numbers: ");

for(i=1;i<11;i++) scanf("%d",&a[i]);

printf(" ");

for(i=1;i<=9;i++)

{ (7) ;

for(j=i+1; (8) ;j++)

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

if(k!=i)

{ t=a[k]; a[k]=a[i]; a[i]=t;}

}

printf("The sorted numbers: ");

for(i=1;i<11;i++) printf("%d ",a[i]);

}

答案

一 選擇題(7分,每小題0.5分)

1. B 2. C 3. B 4. B 5. C

6. A 7. B 8. A 9. A 10. C

11. A 12. A 13. B 14. D

二 判斷對錯,對的劃“√”,錯的劃“×”(5分,每小題0.5分)

1.× 2.× 3.√ 4.√ 5.×

6.× 7.× 8.× 9.√ 10.√

三 寫出下列程序的運行結(jié)果(10分,每小題2分)

1. 2. 3.

4. 5.

四 閱讀下列程序,在 處填入適當(dāng)內(nèi)容,使程序完整(8分,每個空1分)

1.(1)int array[3][4](int array[][4]) (2)return(max) (3)scanf(“%d”,&a[i][j])

2.(4)*p (5)px=&x(py=&y) (6)py=&y(px=&x)

3.(7) (8)

2003C語言試題3

一 選擇題(24分,每小題2分)

1.已知函數(shù)fread的調(diào)用形式為fread(buffer,size,count,fp),其中buffer代表的是( )。

A 存放讀入數(shù)據(jù)項的存儲區(qū) B 存放讀入數(shù)據(jù)的地址或指向此地址的指針

C 一個指向所讀文件的文件指針 D 一個整形變量,代表要讀入的數(shù)據(jù)項總數(shù)

2.以下程序的輸出結(jié)果為( )。

main( )

{ int i=010,j=10;

printf("%d,%d ",i++,j--);

}

A 11,9 B 9,10 C 8,10 D 9,9

3.設(shè)a為int型變量,執(zhí)行下列賦值語句后,a的取值分別是( )。a=125.534;a=20.0/3;a=(int)125.521%4;a=5<<2;

A 125,6,31,1 B 125,6,1,20 C 125,6.666666,31,20 D 125.534,6.666666,2,20

4.設(shè)i和k都是int類型,則for循環(huán)語句( )。

for(i=0,k=-1;k=1;i++,k++) printf("**** ");

A 循環(huán)結(jié)束的條件不合法 B 循環(huán)體一次也不執(zhí)行 C 循環(huán)體只執(zhí)行一次 D 是無限循環(huán)

5.以下程序的輸出結(jié)果為( )。

main( )

{ char c;

int i;

for(i=65;i<68;i++)

{ c=i+32;

switch(c)

{ case 'a':case 'b':case 'c':printf("%c,",c);break; default:printf("end");}

}

}

A a,b,c,end B a,a,a,end C a,a,a, D a,b,c,

6.函數(shù)調(diào)用語句:fseek(fp,-10L,2);的含義是( )。

A 將文件位置指針從文件末尾處向文件頭的方向移動10個字節(jié)

B 將文件位置指針從當(dāng)前位置向文件頭的方向移動10個字節(jié)

C 將文件位置指針從當(dāng)前位置向文件末尾方向移動10個字節(jié)

D 將文件位置指針移到距離文件頭10個字節(jié)處

7.以下程序的輸出結(jié)果為( )。

main( )

{ char s1[40]="country",s2[20]="side";

int i=0,j=0;

while(s1[i]!='') i++;

while(s2[j]!='') s1[i++]=s2[j++];

s1[i]=0;

printf("%s ",s1);

}

A side B country C sidetry D countryside

8.下列說法不正確的是( )。

A 主函數(shù)main中定義的變量在整個文件或程序中有效

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

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

D 在一個函數(shù)內(nèi)部,可以在復(fù)合語句中定義變量,這些變量只在本復(fù)合語句中有效

9.在下列程序段中,枚舉變量 c1的值是( )。

enum color { red,yellow,blue=4,green,white}c1; c1=yellow; c1=white;

A 1 B 3 C 5 D 6

10.設(shè)有說明 int (*ptr)();其中標(biāo)識符ptr是( )。

A 是一個指向整形變量的`指針 B 是一個指針,它指向一個函數(shù)值是int的函數(shù)

C 是一個函數(shù)名 D定義不合法

11.定義由n個指向整形數(shù)據(jù)的指針組成的數(shù)組p,其正確的方式為( )。

A int p; B int (*p)[n]; C int *p[n]; D int (*p)( );

12.具有相同類型的指針類型變量p與數(shù)組a,不能進行的操作是( )。

A p=a; B *p=a[0]; C p=&a[0]; D p=&a;

二 判斷對錯,對的劃“√”,錯的劃“×”(20分,每小題2分)

1.參加位運算的數(shù)據(jù)可以是任何類型的數(shù)據(jù)。( )

2.若有定義和語句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通過鍵盤輸入:10,A,12.5,則a=10,c=‘A’,f=12.5。( )

3.C語言把文件看作是一個字符(字節(jié))的序列。( )

4.若有宏定義:#define S(a,b) t=a;a=b;b=t由于變量t沒定義,所以此宏定義是錯誤的。( )

5.在Turbo C中,下面的定義和語句是合法的:file *fp;fp=fopen("a.txt","r");( )

6.若有定義:char s[ ]="china";則Turbo C系統(tǒng)為數(shù)組s開辟6個字節(jié)的內(nèi)存單元。( )

7.若有定義和語句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++) sum+=a[i][2-i];則sum=21。( )

8.若有定義和語句:struct student { int num; char name[10]; float score;} s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);輸出結(jié)果是1。( )

9.在程序中定義了一個結(jié)構(gòu)體類型后,可以多次用它來定義具有該類型的變量。( )

10.在Turbo C中,此定義和語句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5;( )

三 寫出下列程序的運行結(jié)果(36分,每小題6分)

1.main( )

{ int i=29,j=6,k=2,s;

s=i+i/j%k-9;

printf(“s=%d ”,s);

}

2.main( )

{ int x=31,y=2,s=0;

do

{ s-=x*y;

x+=2;

y-=3;} while( x%3==0);

printf(“x=%d y=%d s=%d ”,x,y,s);

}

3.main( )

{ int a[6]={10,20,30,40,50,60},i;

invert(a,0,5);

for(i=0;i<6;i++) printf(“%d,”,a[i]);

printf(“ ”);

}

invert(int s[ ],int i,int j)

{ int t;

if(i

{ invert(s,i+1j-1);

t=s[i];s[i]=s[j];s[j]=t;

}

}

4.#include

main()

{ char str[ ]=“The C program”,c;

int i;

for(i=2;(c=str[i])!=‘’;i++)

{ switch(c)

{ case ‘g’: ++i; break;

case ‘o’: continue;

default: printf(“%c”,c); continue;

}

printf(“*”);

}

printf(“ ”);

}

5.struct w

{ char low;

char high;

};

union u

{ struct w byte;

short word;

}uw;

main( )

{ int result;

uw.word=0x1234;

printf(“word value:%04x ”,uw.word);

printf(“high byte:%02x ”,uw.byte.high);

printf(“l(fā)ow byte:%02x ”,uw.byte.low);

uw.byte.low=0x74;

printf(“word value:%04x ”,uw.word);

result=uw.word+0x2a34;

printf(“the result:%04x ”,result);

}

6.main()

{ char *s2=“I love China!”,**s1=&s2;

char *s3,c,*s4=“w”;

s3=&c;

*s3=‘H’;

s2=s2+2;

printf(“%s %c %s %c ”,s2,*s3,s4,**s1);

}

四 閱讀下列程序,在 處填入適當(dāng)內(nèi)容,使程序完整(20分,每個空2分)

1. 百馬百擔(dān)問題:有100匹馬,馱100擔(dān)貨,大馬馱3擔(dān),中馬馱2擔(dān),兩匹小馬馱1擔(dān),問大、中、小馬各多少匹?

main( )

{ int hb,hm,hl,n=0;

for(hb=0;hb<=100;hb+= (1) )

for(hm=0;hm<=100-hb;hm+= (2) )

{ hl=100-hb- (3) ;

if(hb/3+hm/2+2* (3) ==100)

{ n++;

printf("hb=%d,hm=%d,hl=%d ",hb/3,hm/2,2*hl);

}

}

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

}

2.用“起泡法”對輸入的10個字符排序后按從小到大的次序輸出。

#define N 10

char str[N];

main()

{ int i,flag;

for(flag=1;flag==1;)

{ scanf("%s",str);

flag=0;

printf(" ");

}

sort(___(4)___);

for(i=0;i

printf("%c",str[i]);

printf(" ");

}

sort(char str[N])

{ int i,j;

char t;

for(j=1;j

for(i=0;(i

if(str[i]>str[i+1])

{ t=str[i];

____(5)____;

____(6)____;

}

}

3.以下程序是一個函數(shù),功能是求二階矩陣(m行n列矩陣)的所有靠外側(cè)的各元素值之和。(本程序中二階矩陣用一維數(shù)組來表示。)

例如,矩陣為:

3 0 0 3

2 5 7 3

1 0 4 2

則所有靠外側(cè)的各元素值之和為3+0+0+3+2+3+1+0+4+2=18。

add(int m,int n,int arr[])

{ int i,j,sum=0;

for(i=0;i

for(j=0;j

sum=sum+ (7) ;

for(j=0;j

for(i=1; (8) ;i++)

sum=sum+arr[i*n+j];

return(sum);

}

4.用指針作函數(shù)參數(shù),編程序求一維數(shù)組中的最大和最小的元素值。

#define N 10

main()

{ void maxmin(int arr[],int *pt1,int *pt2,int n);

int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;

p1=&a; p2=&b;

maxmin(array,p1,p2,N);

printf("max=%d,min=%d",a,b);

}

void maxmin(int arr[],int *pt1,int *pt2,int n)

{ int i;

*pt1=*pt2=arr[0];

for(i=1;i

{ if(arr[i]>*pt1) (9) ;

if(arr[i]<*pt2) (10) ;

}

}

答案

一 選擇題(24分,每小題2分)

1.( B ) 2.( C ) 3.( B ) 4.( D ) 5.( D ) 6.( A )

7.( D ) 8.( A ) 9.( D ) 10.( B ) 11.( C ) 12.( D )

二 判斷對錯,對的劃“√”,錯的劃“×”(20分,每小題2分)

1.( × ) 2.( √ ) 3.( √ ) 4.( × ) 5.( × )

6.( √ ) 7.( √ ) 8.( × ) 9.( √ ) 10.( √ )

三 寫出下列程序的運行結(jié)果(36分,每小題6分)

1. s=20 2.x=35 y=-4 s=-29 3.60,50,40,30,20,10,

4.e C pr*am 5.word value:1234 6.love China! H w l

high byte:12

low byte:34

word value:1274

the result:3ca8

四 閱讀下列程序,在 處填入適當(dāng)內(nèi)容,使程序完整(20分,每個空2分)

1.(1) 3 (2) 2 (3)hm hl

2.(4) str (5) str[i]=str[i+1] (6) str[i+1]=t

3.(7) arr[i*n+j](或者arr[i*10+j])

(8) i

4.(9) *ptr1=arr[i] (10) *ptr2=arr[i]


信息流廣告 競價托管 招生通 周易 易經(jīng) 代理招生 二手車 網(wǎng)絡(luò)推廣 自學(xué)教程 招生代理 旅游攻略 非物質(zhì)文化遺產(chǎn) 河北信息網(wǎng) 石家莊人才網(wǎng) 買車咨詢 河北人才網(wǎng) 精雕圖 戲曲下載 河北生活網(wǎng) 好書推薦 工作計劃 游戲攻略 心理測試 石家莊網(wǎng)絡(luò)推廣 石家莊招聘 石家莊網(wǎng)絡(luò)營銷 培訓(xùn)網(wǎng) 好做題 游戲攻略 考研真題 代理招生 心理咨詢 游戲攻略 興趣愛好 網(wǎng)絡(luò)知識 品牌營銷 商標(biāo)交易 游戲攻略 短視頻代運營 秦皇島人才網(wǎng) PS修圖 寶寶起名 零基礎(chǔ)學(xué)習(xí)電腦 電商設(shè)計 職業(yè)培訓(xùn) 免費發(fā)布信息 服裝服飾 律師咨詢 搜救犬 Chat GPT中文版 語料庫 范文網(wǎng) 工作總結(jié) 二手車估價 情侶網(wǎng)名 愛采購代運營 情感文案 古詩詞 邯鄲人才網(wǎng) 鐵皮房 衡水人才網(wǎng) 石家莊點痣 微信運營 養(yǎng)花 名酒回收 石家莊代理記賬 女士發(fā)型 搜搜作文 石家莊人才網(wǎng) 銅雕 關(guān)鍵詞優(yōu)化 圍棋 chatGPT 讀后感 玄機派 企業(yè)服務(wù) 法律咨詢 chatGPT國內(nèi)版 chatGPT官網(wǎng) 勵志名言 兒童文學(xué) 河北代理記賬公司 教育培訓(xùn) 游戲推薦 抖音代運營 朋友圈文案 男士發(fā)型 培訓(xùn)招生 文玩 大可如意 保定人才網(wǎng) 黃金回收 承德人才網(wǎng) 石家莊人才網(wǎng) 模型機 高度酒 沐盛有禮 公司注冊 造紙術(shù) 唐山人才網(wǎng) 沐盛傳媒