青島科技大學(xué)c語(yǔ)言試題庫(kù).doc
《青島科技大學(xué)c語(yǔ)言試題庫(kù).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《青島科技大學(xué)c語(yǔ)言試題庫(kù).doc(38頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第一套試題 一、 單項(xiàng)選擇題(15個(gè)小題,每題2分,共30分): 1.一個(gè)C語(yǔ)言程序的執(zhí)行是從_____。 A.main函數(shù)開始,直到main函數(shù)結(jié)束 B.第一個(gè)函數(shù)開始,直到最后一個(gè)函數(shù)結(jié)束 C.第一個(gè)函數(shù)開始,直到最后一個(gè)語(yǔ)句結(jié)束 D.main函數(shù)開始,直到最后一個(gè)函數(shù)結(jié)束 2. 正確的自定義標(biāo)識(shí)符是_____。 A.x_2 B.a(chǎn)-b C.2sum D.$123 3.下面程序的運(yùn)行結(jié)果是_____。 #define F(x) x*x void main( ) { int a=2,b=1; prinft(“%d\n”,F(a+b)); } A.3 B.5 C
2、.8 D.9 4.讀以下程序段,判斷a的值為_____。 int *p,a=10,b=1; p=&a; a=*p+b; A.12 B.10 C.11 D.編譯出錯(cuò) 5.根據(jù)以下說(shuō)明語(yǔ)句,則下面的敘述中不正確的是_____。 struct student { int num; char name[10]; int score; }stu; A.struct是定義結(jié)構(gòu)體類型的關(guān)鍵字 B.stu是結(jié)構(gòu)體變量名 C.num, name, score都是結(jié)構(gòu)體成員名 D.stu是結(jié)構(gòu)體類型名 6.已知字母A的ASCII碼為十進(jìn)制數(shù)65,變量ch1為字符型,則執(zhí)行語(yǔ)句c
3、h1=‘A’+‘5’-‘2’;后,ch1中的值是_____。 A.D B.67 C.一個(gè)不確定的值 D.C 7.以下哪種方法不能對(duì)一維數(shù)組進(jìn)行正確的初始化_____。 A.int a[ ]={1,2,3}; B.int a[5]={ }; C.int a[5]=(1,2,3,4,5); D.int a[ ]={2,3,4*5,6}; 8.已正確定義字符變量ch1,下面能正確賦值的是_____。 A.ch1=“a”; B.ch1=‘a(chǎn)’; C.ch1=“C語(yǔ)言程序設(shè)計(jì)”; D.ch1=‘ C語(yǔ)言程序設(shè)計(jì)’; 9.逗號(hào)表達(dá)式 (a=3*4,a*4),a+5 的值是_____。 A
4、.53 B.17 C.20 D.48 10.設(shè)n為float型,m為int型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入的表達(dá)式是_____。 A.n=(n*100+0.5)/100.0 B.n=n*100+0.5/100.0 C.m=n*100+0.5,n=m/100.0 D.n=(n/100+0.5)*100.0 11.設(shè)i=2,j=3,則表達(dá)式(i++)*(++j)的值為_____。 A.6 B.8 C.9 D.12 12.關(guān)于以下程序段,說(shuō)法正確的是_____。 x=-1; do { x=x*x; }while(!x); A.死循環(huán) B.循環(huán)體執(zhí)行
5、二次 C.循環(huán)體執(zhí)行一次 D.有語(yǔ)法錯(cuò)誤 13.若有下列定義:char c[5],*p=c; 則對(duì)c數(shù)組元素地址的正確引用是_____。 A.p+2 B.&c[5] C.c++ D.&c 14.當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳送的是_____。 A.?dāng)?shù)組的長(zhǎng)度 B.?dāng)?shù)組每個(gè)元素中的值 C.?dāng)?shù)組每一個(gè)元素的地址 D.?dāng)?shù)組的首地址 15.文件中利用fopen函數(shù)打開文件,如果以只讀方式打開二進(jìn)制文件,則以下打開方式正確的是_____。 A.r+ B.rb C.wb D.a(chǎn)b 二、填空題(5個(gè)小題,每題2分,共10分): 1.若有int i=1,j=7,a; 執(zhí)行語(yǔ)句 a
6、=i+(j%4!=0); 后,a的值是_______。
2.執(zhí)行以下程序后,運(yùn)行結(jié)果是_______。
#include
7、{ int a=2;
float n=5.888,b;
b=a+(int)n;
printf(“%f\n”,b);}
5.語(yǔ)句 scanf("a=%d,b=%d",&a,&b); 若將3和4分別輸入給a和b,則正確的輸入方式為____
8、}
case 2: a++; b++; break;}
printf(“a=%d,b=%d\n”,a,b);}
2.在運(yùn)行以下程序時(shí),輸入“Turbo C++ 3.0”,寫出程序的運(yùn)行結(jié)果。
#include
9、n”,i,j,y,i+j+y);
i*=2;}
void main( )
{ int x;
for(x=1;x<=2;++x) f(x);}
4.#include
10、 int plus(int x,int y) { int z; z=x+y; return (z);} void main( ) { int a=4,b=5,c; c=plus(a,b); printf(“a+b=%d\n”,c); } 四、程序填空題,將下面程序補(bǔ)充完整(10個(gè)填空,每空2分,共20分): 1.輸出九九表。 #include “stdio.h” void main( ) { int i,j; for(i=1;i<=9;i++) {for(j=1; ① ;j++) printf(“%3d*%d=%2d”,i,j,i*j); ② ; } }
11、2.利用函數(shù)形式,求x數(shù)組所有元素的平均值并輸出。 #include “stdio.h” ① ; void main( ) { float avg,x[10]={1.2,3.6,4.5,5.1,6.9,7,8,9,10.5,11.3}; avg=average(x); printf(“The average is %5.2f\n”,avg); } float average(float a[10]) { int i; float sum=0; for(i=0;i<10;i++) sum=sum+a[i]; ② ; } 3.編寫一個(gè)計(jì)算字符串長(zhǎng)度的函數(shù)length。
12、 #include “stdio.h” void main( ) { char str[20]; int m; int length(char *p); printf("Input a string:\n"); gets(str); ① ; printf("\n the length of str is%d ",m); } int length(char *p) { int n=0; while( ② ) { n++; p++; } return n;} 4.輸入10個(gè)整數(shù),按每行3個(gè)數(shù)輸出這些整數(shù),最后輸出10個(gè)整數(shù)的平均值。 #include “stdio.h
13、”
void main( )
{ int i,n=10,a[10];
float avg=0;
for(i=0;i 14、char str[30]=“Welcome to C Language”,*cp=str;
while(*cp)
{ if(*cp>=‘A’&&*cp<=‘Z’)
① ;
else if(*cp>=‘a(chǎn)’&&*cp<=‘z’)
*cp=*cp-32;
② ;
}
puts(str);
}
五、程序設(shè)計(jì)題(3個(gè)小題,共20分):
1.設(shè)三個(gè)整型變量a,b,c,編寫程序?yàn)閍,b,c輸入數(shù)據(jù),并要求a,b,c按由小到大排序后輸出。(5分)
2.學(xué)生成績(jī)可分為五分制與百分制,編程將百分制轉(zhuǎn)換為五分制輸出。(5分)
3.編寫排序函數(shù)sort(int a[ ]),實(shí)現(xiàn)對(duì)數(shù)組a中的 15、元素進(jìn)行排序,并利用該函數(shù),從鍵盤輸入若干個(gè)數(shù)(如10個(gè))將其按升序排列。(10分)
第一套試題
一、單項(xiàng)選擇題(15個(gè)小題,每題2分,共30分):
1-5:AABCD 6-10:ACBBC 11-15:BCADB
二、填空題(5個(gè)小題,每題2分,共10分):
1.2 2.4 3.string.h
4.7.000000 5.a(chǎn)=3,b=4
三、程序分析題,寫出程序的運(yùn)行結(jié)果(5個(gè)小題,每題4分,共20分):
1.a(chǎn)=2,b=1 2.Turbo 3.5+4+1=10
4.10,20 5.a(chǎn)+b=9 10+4+2=16
四、程序填空題,將下面程序補(bǔ)充完整(10個(gè)填空,每空2分, 16、共20分):
1.①j<=i ②printf(“\n”)
2.①float average(float a[10]) 或 float average(float a[ ])
②return (sum/10)
3.①m=length(str) ②*p!=‘\0’ 或 *p
4.①i%3==0 ②avg+=a[i] 或 avg=avg+a[i]
5.①*cp=*cp+32或*cp=*cp+‘a(chǎn)’-‘A’ ②cp++
五、程序設(shè)計(jì)題(3個(gè)小題,共20分):
1.#include “stdio.h”
void main( )
{ int a,b,c,t;
printf("inpu 17、t a,b and c:");
scanf("%d%d%d",&a,&b,&c); ……1分
if(a>b) { t=a; a=b; b=t; } ……3分
if(a>c) { t=a; a=c; c=t; }
if(b>c) { t=b; b=c; c=t; }
printf("%d%d%d",a,b,c); ……1分
}
2.#include “stdio.h”
void main( )
{ float score;
printf(“Input a score:”);
scanf(“%f”,&score);
while(score>100||score<0) ……2 18、分
{ printf(“Error! Please input again:\n”);
scanf(“%f”,&score);
}
if(score>=90) printf(“A\n”); ……3分
else if(score>=80) printf(“B\n”);
else if(score>=70) printf(“C\n”);
else if(score>=60) printf(“D\n”);
else printf(“E\n”);
}
3.#include "stdio.h"
#define N 10
void sort(int a[ ]); ……1分
voi 19、d main( )
{ int a[N],i,j;
printf("input %d numbers:\n",N);
for(i=0;i 20、p; }
}
第二套試題
一、 單項(xiàng)選擇題(15個(gè)小題,每小題2分,共30分):
1.在一個(gè)源程序中,main函數(shù)的位置_____。
A.必須在最前面 B.必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面
C.沒有具體要求 D.必須在最后
2.正確的用戶自定義標(biāo)識(shí)符是_____。
A.a(chǎn)=2 B.a(chǎn)+b C.name D.default
3.以下敘述中正確的是_____。
A.break語(yǔ)句只能用于switch語(yǔ)句體中
B.continue語(yǔ)句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.break語(yǔ)句只能用在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)
D.在循環(huán)體內(nèi)使用break語(yǔ)句和c 21、ontinue語(yǔ)句的作用相同
4.C語(yǔ)言中最簡(jiǎn)單的數(shù)據(jù)類型包括_____。
A.整型、實(shí)型、邏輯型 B.整型、實(shí)型、字符型
C.整型、字符型、邏輯型 D.字符型、實(shí)型、邏輯型
5. 設(shè)ch是char型變量,其值為‘A’,且有表達(dá)式ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch,該表達(dá)式的值為_____。
A.A B.a(chǎn) C.Z D.z
6. 以下敘述正確的是_____。
A.用do-while語(yǔ)句構(gòu)成的循環(huán)不能用其它語(yǔ)句構(gòu)成的循環(huán)來(lái)代替
B.用do-while語(yǔ)句構(gòu)成的循環(huán)只能用break語(yǔ)句退出
C.用do-while語(yǔ)句構(gòu)成循環(huán)時(shí),當(dāng)while后的表達(dá)式 22、成立時(shí)結(jié)束循環(huán)
D.用do-while語(yǔ)句構(gòu)成循環(huán)時(shí),當(dāng)while后的表達(dá)式不成立時(shí)結(jié)束循環(huán)
7.為了判斷兩個(gè)字符串s1和s2是否相等,應(yīng)當(dāng)使用_____。
A.if(s1==s2) B.if(s1=s2)
C.if(strcmp(s1,s2))真 D.if(strcmp(s1,s2)==0) 假
8.當(dāng)把以下四個(gè)表達(dá)式用作if語(yǔ)句的控制表達(dá)式時(shí),有一個(gè)選項(xiàng)與其它三個(gè)選項(xiàng)含義不同,這個(gè)選項(xiàng)是_____。
A.k%2 (k/2) B.k%2==1 C.(k%2)!=0 D.!k%2==1
9.下列是關(guān)于數(shù)組的敘述,不正確的是_____。
A.在定義數(shù)組時(shí),數(shù)組名前的類型是指明數(shù)組 23、各元素的類型
B.?dāng)?shù)組各元素的類型是相同的,而且是有序的
C.在引用數(shù)組元素時(shí),數(shù)組元素的下標(biāo)表達(dá)式必須是常量整型表達(dá)式
D.對(duì)整型數(shù)組來(lái)說(shuō),未初始化時(shí),各數(shù)組元素的值是不確定的
10.有字符數(shù)組x[50],y[50],則正確的輸出語(yǔ)句是_____。
A.printf(″%s″,″%s″,x,y); B.puts(x);puts(y);
C.putchar(x,y); D.puts(x,y);
11.以下對(duì)一維數(shù)組a進(jìn)行不正確初始化的是_____。
A.int x[5]={}; B.int x[5]=(0,0,0);
C.int x[ ]={0}; D.int x[5]={2 24、*3};
12.下列敘述中錯(cuò)誤的是_____。
A.主函數(shù)中定義的變量在整個(gè)程序中都是有效的
B.在其他函數(shù)中定義的變量,沒有特殊聲明在主函數(shù)中不能使用
C.形式參數(shù)也是局部變量
D.復(fù)合語(yǔ)句中定義的變量只在該復(fù)合語(yǔ)句中有效
13.設(shè)有函數(shù)原型、一維數(shù)組和變量定義如下:
函數(shù)原型 void fun(int x[ ],int n);
數(shù)組定義 int a[4]={1,2,3,4}; float b[4]={1.0,2.0,3.0,4.0};
變量定義 int m=4,value;
下列函數(shù)調(diào)用中,正確的是_____。(函數(shù)返回值?)
A.fun(a,m); B.value= 25、fun(a[1],m);
C.value=fun(a,4); D.fun(b,m);
14.以下對(duì)指針定義合法的語(yǔ)句是_____。
A.int *p=&x=3; B.int y[5]={1,2,3,4,5},*p=&y;
C.char ch[12]=″Hello World″,*c=ch; D.char *c,c=‘x’,c=&c;
15.以“只讀”方式打開文本文件aa.dat,下列語(yǔ)句中哪一個(gè)是正確的_____。
A.fp=fopen(″aa.dat″,″r+″); B.fp=fopen(″aa.dat″,″a″);
C.fp=fopen(″aa.dat″,″wb″); D.f 26、p=fopen(″aa.dat″,″r″);
二、填空題(15個(gè)小題,每空1分,共15分):
1. 結(jié)構(gòu)化程序設(shè)計(jì)的三種基本程序結(jié)構(gòu)為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和________。
2. 條件“30≤x≤80且x≠50”的C語(yǔ)言表達(dá)式是________。
3. C語(yǔ)言源程序文件的后綴是________。
4. 有如下定義:int m=1,n=1,x=3;則執(zhí)行語(yǔ)句:if(!n) x+=1;if(m) x-=2;后,x的值是________。
5. 執(zhí)行如下語(yǔ)句:
int i=10;
do
{ i=i+10;}while(i>20);后,i的值是________。
6. 若a、b、c 27、和d都是int型變量,則執(zhí)行表達(dá)式d=(a=2,b=4,c=a*b);后,d的值為________。
7. 在使用數(shù)組元素的過(guò)程中,C語(yǔ)言編譯系統(tǒng)________(是/否)檢查下標(biāo)“越界”。
8. 設(shè)m=4,n=7,表達(dá)式x=(m++)*(--n)的值是________。
9. 執(zhí)行如下語(yǔ)句:int k;k值不確定
for(k=0;k=1;k++); 則該循環(huán)執(zhí)行的次數(shù)是________。
10. 有如下定義:int x[5]={1,3,5,7,9},*p=&x[2];則執(zhí)行語(yǔ)句printf("%d",*p);的輸出結(jié)果是________。
11. 有如下結(jié)構(gòu)體定義:
str 28、uct date
{ int year;
int month;
int day;
};
struct worklist
{ char name[20];
char sex;
struct date birthday;
}person;
若對(duì)結(jié)構(gòu)體變量person的出生年份賦值為1990,則正確的賦值語(yǔ)句是________。
12. C語(yǔ)言提供的預(yù)處理命令有________、文件包含和條件編譯三種。
13.設(shè)有數(shù)組定義:char string[ ]= "Student",則數(shù)組所占的存儲(chǔ)空間為________個(gè) 字節(jié)。
14.指針變量只能存放內(nèi)存儲(chǔ)單元的______ 29、__。
15.在C語(yǔ)言中,當(dāng)函數(shù)返回值的類型缺省時(shí),表示該函數(shù)返回值的類型是________。
三、寫出程序的運(yùn)行結(jié)果(5個(gè)小題,每小題4分,共20分):
1.#include "stdio.h"
void main( )
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1: switch(y)
{ case 0: a++;break;
case 1: b++;break;
}
case 2: a++;b++;break;
}
printf(“a=%d,b=%d\n”,a,b);
}
2.#include "stdio.h"
30、void f(int b[ ])
{ int i;
for(i=2;i<6;i++)
b[i]*=2;
}
void main( )
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
f(a);
for(i=0;i<10;i++)
printf(“%d”,a[i]);
}
3.#include "stdio.h"
int a=5,b=7;
int plus(int x,int y)
{ int z;
z=x+y;
return (z);
}
void main( )
{ int a=4,b=5,c;
c=plus(a+b);
31、printf("a+b=%d\n",c);
}
4. #include "stdio.h"
int d=1;
fun(int p)
{ static int d=5;
d+=p;
return (d);
}
void main( )
{ int a=3;
printf("%d\n",fun(a+fun(d)));
}
5.#include "stdio.h"
void main( )
{ char ch[15]={“abcdefg”};
char c,*cp1,*cp2;
int i,n=0;
cp1=ch;
cp2=ch;
while(*cp2 32、!=‘\0’)
{ n++;cp2++;}
cp2--;
n=n/2;
for(i=0;i 33、);
for(i=0;i 34、N;j++)
if( (2) ) r=j;
if(r!=i)
{ temp=a[r]; a[r]=a[i]; a[i]=temp; }
}
printf("the array after sort:\n");
for(i=0;i 35、調(diào)用子函數(shù)average,分別求出主函數(shù)main中x和y數(shù)組的平均值并輸出。
#include "stdio.h"
float average( (1) )
{ int i;
float sum=0;
for(i=0;i 36、.2f\n",avg);
avg=average(y,5);
printf("The array y average is %5.2f\n",avg);
}
5.將字符數(shù)組中大寫字符改為小寫字符,將小寫字符改為大寫字符。
#include "stdio.h"
void main( )
{ char str[30]=“I am a string”,*cp;
(1)
while(*cp)
{ if(*cp>=‘A’&&*cp<=‘Z’)
*cp=*cp+32;
else if(*cp1 >=‘a(chǎn)’&&*cp<=‘z’)
*cp=*cp-32;
else
*cp=*c 37、p;
(2)
}
puts(str);
}
五、 程序設(shè)計(jì)題(2個(gè)小題,共15分):
1. 求1!-2!+3! -4!+ … -10!。(7分)
2. 編寫一個(gè)計(jì)算字符串長(zhǎng)度的函數(shù),模擬C的“string.h”函數(shù)庫(kù)內(nèi)的計(jì)算字符串長(zhǎng)度的函數(shù)strlen( )。(8分)
第二套試題答案
一、 單項(xiàng)選擇題(15個(gè)小題,每小題2分,共30分):
1-5 C C C B B 6-10 D D D C B 11-15 B A A C D
二、 填空題(15個(gè)小題,每空1分,共15分):
1. 循環(huán)結(jié)構(gòu)
2. (x>=30)&&(x<=80)&&(x!=50)
3. 38、.c
4. 1
5. 20
6. 8
7. 否
8. 24
9. 無(wú)限次
10. 5
11. person.birthday.year=1990
12. 宏定義
13. 8
14. 地址
15. int/整型
三、寫出程序的運(yùn)行結(jié)果(5個(gè)小題,每小題4分,共20分):
1. a=2,b=1 2. 1 2 6 8 10 12 7 8 9 10
3. a+b=9 4. 15 5. gfedcba
四、完善程序,在空白處填上相應(yīng)的語(yǔ)句內(nèi)容(5個(gè)小題,每小題4分,共20分):
1.(1)printf(“\n”); (2)avg=avg/n;
2.(1)r=i;
- 溫馨提示:
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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 隱蔽工程驗(yàn)收要點(diǎn)
- 給排水中水泵揚(yáng)程與壓力的關(guān)系
- 水泥廠燒成回轉(zhuǎn)窯中控操作問(wèn)題解答
- 地暖安裝注意事項(xiàng)
- 水泥廠中控操作自動(dòng)化專業(yè)試題(附答案)
- 防水套管的應(yīng)用與分類
- 施工現(xiàn)場(chǎng)職業(yè)健康管理制度
- 常見基坑工程的支護(hù)方式
- 水泥包裝車間各崗位職責(zé)
- 打樁機(jī)的種類
- 水泥磨操作員試題(附答案)
- 鋼結(jié)構(gòu)工程量計(jì)算注意事項(xiàng)
- 水泥控制工試題(附答案)
- 水泥生產(chǎn)工藝類知識(shí)考試題(附答案)-
- 鋼結(jié)構(gòu)安裝施工安全技術(shù)交底范文