河南理工大學(xué) 歷年C語言試卷
《河南理工大學(xué) 歷年C語言試卷》由會(huì)員分享,可在線閱讀,更多相關(guān)《河南理工大學(xué) 歷年C語言試卷(36頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、河南理工大學(xué) 2004~2005 學(xué)年第 2 學(xué)期 《c語言程序設(shè)計(jì)》 試卷(A卷) 考試方式:閉卷 本試卷考試分?jǐn)?shù)占學(xué)生總評(píng)成績(jī)的 70 % 總 分 題號(hào) 一 二 三 四 核分人 題分 專業(yè)班級(jí): 姓名: 學(xué)號(hào): …………………………密………………………………封………………………………線………………………… 一、單項(xiàng)選擇題(每題2分,共50分) 在每小題列出的四個(gè)選項(xiàng)中只有一個(gè)
2、選項(xiàng)是符合題目要求的,請(qǐng)將正確選項(xiàng)前的字母填在題后的下劃線“ ”上。 1.以下敘述正確的是 A)C程序中,main函數(shù)必須位于程序的最前面 B)C程序的每一行只能寫一條語句 C)C語言本身沒有輸入輸出語句 D)對(duì)C程序進(jìn)行編譯的過程中,可以發(fā)現(xiàn)注釋中的拼寫錯(cuò)誤 2.以下選項(xiàng)中均是合法的用戶標(biāo)識(shí)符是 A)A B) _123 C)3Dmax D) A.dat P_0 temp p-pointer la0 do INT _print int 3.在C
3、語言中,字符型(char)數(shù)據(jù)在內(nèi)存中存放的形式為 A)BCD碼 B)原碼 C)補(bǔ)碼 D)ASCII碼 4.已知char a;int b;float c;double d;執(zhí)行語句c=a+b+c+d;后,變量c 的數(shù)據(jù)類型是 A)int B)char C)float D)double 5.已知int i,a;執(zhí)行語句i=(a=2*3,a*5),a+6;后,變量i的值是 A)36 B)30 C)12
4、 D)6
6.若int x=3;且有下面的程序片斷,則輸出結(jié)果是
A)1 B)3 0 C)1 -2 D)死循環(huán)
do
{ printf("%d ",x-=2);
}while(!(--x));
7.字符串"\\\22a,0\n"的長(zhǎng)度是
A)8 B)7 C)6 D)5
8.若w=1,x=2,y=3,z=4;則條件表達(dá)式w>x?w:y 5、 C)2 D)1
9.當(dāng)執(zhí)行下面程序時(shí),如果輸入ABC,則輸出的結(jié)果是
#include 6、A)**0** B)**0****2** C)**0****1****2** D)有語法錯(cuò)誤
switch(a)
{ case 1:
switch(b)
{ case 0: printf("**0**"); break;
case 1: printf("**1**"); break;
}
case 2: printf("**2**"); break;
}
11.以下不是死循環(huán)的語句是
A)for(;;x+=i); B)while(1){x++;}
C) 7、for(i=10;;i--) D)for(;(c=getchar())!='\n';)
sum+=i; printf("%c",c);
12.下列程序的輸出結(jié)果是
A)13;1 B)14;4 C)11;1 D)10;0
main()
{ int a=10, b=0;
if(a=12)
{ a=a+1; b=b+1;
}else
{ a=a+4;b=b+4; }
8、
printf("%d,%d\n",a,b);
}
13.下面關(guān)于字符串的說明中,錯(cuò)誤的是
A)char str[7]="FORTRAN"; B)char str[]="FORTRAN";
C)char *str="FORTRAN";
D)char str[]={'F','O','R','T','R','A','N'}
14.已知:int a[10];則對(duì)a數(shù)組元素的正確引用是
A)a[10] B)a[3.5] C)a(5) D)a[10-10]
15.在C語言中
9、
A)不能使用do-while語句構(gòu)成的循環(huán)
B)do-while語句構(gòu)成的循環(huán)必須用break語句才能退出
C)do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為非零時(shí)結(jié)束循環(huán)
D)do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為零時(shí)結(jié)束循環(huán)
16.下列程序的輸出結(jié)果是
A)13 B)15 C)11 D)12
#define FUDGE(y) 1.2+y
#define PR(a) printf("%d",(int)(a))
main()
{ in 10、t x=2;
PR(FUDGE(5)*x);
}
17.C語言中的函數(shù)
A)可以嵌套定義 B)不可以嵌套調(diào)用
C)可以嵌套調(diào)用,但不能遞歸調(diào)用 D)嵌套調(diào)用和遞歸調(diào)用均可
18.若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是
A) abs(x-y)<10?? B) x-y>-10&& x-y<10
C) @(x-y)<-10||!(y-x)>10?? D) (x-y)*(x-y)<100
19.已知int a[4][3]={1,2,3,4,5,6,7,8 11、,9,10,11,12};int (*ptr)[3]=a,*p=a[0];
則以下不能夠正確表示數(shù)組元素a[1][2]的表達(dá)式是
A)*((ptr+1)[2] ) B)*(*(p+5))
C)(*ptr+1)+2 D)*(*(a+1)+2)
20.以下函數(shù)的功能是?
void fun(char?*p2,?char?*p1)
{ ?while((*p2=*p1)!='\0') { ?p1++;p2++;? }? }
A)將p1所指字符串復(fù)制到p2所指內(nèi)存空間
B)將p1所指字符串的地址賦給指針p2
C 12、)對(duì)p1和p2兩個(gè)指針?biāo)缸址M(jìn)行比較
D)檢查p1和p2兩個(gè)指針?biāo)缸址惺欠裼?\0'
21.寫字符到磁盤文件的fputc(ch,fp)函數(shù)(ch表示字符,fp表示文件指針),其函數(shù)原型(頭)正確的是
A) FILE *fputc(char) B) int fputc(FILE *)
C) int fputc(char, FILE *) D) int fputc(FILE *,char)
22. 設(shè)有如下定義:
struct sk
{ int a;float b; }data,*p;
若有p=&data;,則對(duì)data中的a域的正確引 13、用是
A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a
23.已知函數(shù)原型為:
struct tree *func(int x1,int *x2,struct tree x3,struct tree *x4)
其中 tree 為已定義過的結(jié)構(gòu),且有下列變量定義:
struct tree pt,*p; int i;
請(qǐng)選擇正確的函數(shù)調(diào)用語句
A) &pt=func(10,&i,pt,p) B) p=func(i++,&i,pt,&pt);
C) p=func(i+1,&(i+ 14、2),*p,p); D) func(i+1,&i,p,p);
24.下列程序的輸出結(jié)果是
A)AB B)BA C)AA D)BB
void sub(char *a, char *b)
{ char c;
c=*a; *a=*b; *b=c;
}
main()
{ char a, b;
a='A'; b='B';
sub(a,b);
printf("%c%c\n", a,b); }
25. 在Turbo C集成環(huán)境中,若一個(gè)源程序輸入 15、后沒有錯(cuò)誤,則按Ctrl+F9后
A)將源程序存到當(dāng)前目錄
B)依次產(chǎn)生.OBJ和.EXE文件,但不運(yùn)行程序
C)依次產(chǎn)生.EXE和.OBJ文件,并運(yùn)行程序
D)依次產(chǎn)生.OBJ和.EXE文件,并運(yùn)行程序
得分
評(píng)卷人
二、程序填空題(每空2分,共20分)下面給出了若干個(gè)程序,請(qǐng)按照題意將下劃線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。
26.以下程序統(tǒng)計(jì)從終端輸入的字符中每個(gè)大寫字母的個(gè)數(shù)。用#號(hào)作為輸入結(jié)束標(biāo)志,請(qǐng)?zhí)羁铡?
main( )
{ int num[26],i; char c;
for(i=0; i<26; i++) num[i]=0; 16、
while( !='#') /*統(tǒng)計(jì)從終端輸入的大寫字母?jìng)€(gè)數(shù)*/
if(c>=’A’&& c<=’Z’) num[c-65]+=1;/* ’A’的ASCII是65*/
for(i=0; i<26; i++) /*輸出大寫字母和該字母的個(gè)數(shù)*/
if(num[i]) printf("%c:%d\n",i , num[i]);
}
27.將n個(gè)字符串按字母順序(由小到大)排序。
void sort(char *str[],int n)
{ char *t;
int i,j,k;
for(i=0; i 17、i++)
{ ;
for(j=i+1; j 18、ctype.h>
main()
{? char?s[80],?d[80];?int?i,j;
gets(s);
for(i=j=0; s[i]!='\0'; i++)
if( )?{? d[j]=s[i];? j++;? }
;
puts(d);
}
29.以下fun函數(shù)的功能是將一個(gè)字符串的內(nèi)容顛倒過來,如:int str[ ]="12345",則調(diào)用該函數(shù)后,str數(shù)組中的內(nèi)容變?yōu)椋?5432 19、1"。請(qǐng)?zhí)羁铡?
#include "string.h"
void fun(int str[ ])
{ int i,j,k;
for(i=0,j= ; i 20、ing1:”); scanf(“%s”,s1);
printf(“\nInput string2:”); scanf(“%s”,s2);
while(s1[i]!=’\0’)
;
while(s2[j]!=’\0’)
;
s1[i]=’\0’;
printf(“The new string is %s\n”,s1);
}
得分
評(píng)卷人
三、修改下列程序的錯(cuò)誤(共5處,每處3分,共15分)
請(qǐng)改正下列程序中的錯(cuò)誤,使之能得出正確的 21、結(jié)果。
注意:不得增行或減行,也不得更改程序的結(jié)構(gòu)。
31.給定程序中函數(shù)fun的功能 是:計(jì)算n!。 例如:給n輸入5,則輸出120.000000。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
#include 22、t*=--n;
return result;
}
main()
{ int n;
scanf("%d",&n);
printf("\n\n%d!=%lf\n\n",n,fun(n));
}
32.下述程序中函數(shù)calc的功能是對(duì)傳送過來的兩個(gè)實(shí)數(shù)求出和值與差值,并通過兩個(gè)指針形參分別將這兩個(gè)值傳送回調(diào)用函數(shù)。
? void calc(float x,float y,float *add,float *sub)
? {??? *add=x+y;
/**********found*********/
sub=x-y;
?? }
?? m 23、ain()
?? {? float x,y,add,sub;
???? printf("Enter x,y:");
???? /**********found*********/
scanf("%f%f",x,y);
???? /**********found*********/
calc(&x,&y,add,sub);
???? printf("x+y=%f,x-y=%f\n",add,sub);
}
得分
評(píng)卷人
四、程序設(shè)計(jì)(共2題,第一題5分,第二題10分,共15分)
33.輸入三個(gè)整數(shù),求其中的最大值并輸出。(5分)
3 24、4.下面的程序是求數(shù)組中的最小元素,輸出最小元素的下標(biāo)及最小元素值。
注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)findmin的花括號(hào)中填入你編寫的若干語句。
#include 25、n(a,10);
printf("%d,%d\n",k,a[k]);
}
河南理工大學(xué) 2004~2005 學(xué)年第 2 學(xué)期
專業(yè)班級(jí): 姓名: 學(xué)號(hào):
…………………………密………………………………封………………………………線…………………………
《c語言程序設(shè)計(jì)》 試卷(B卷)
考試方式:閉卷 本試卷考試分?jǐn)?shù)占學(xué)生總評(píng)成績(jī)的 70 %
總 分
題號(hào)
一
二
三
四
核分人
題分
復(fù) 26、查人
得分
評(píng)卷人
一、單項(xiàng)選擇題(每題2分,共50分) 在每小題列出的四個(gè)選項(xiàng)中只有一個(gè)選項(xiàng)是符合題目要求的,請(qǐng)將正確選項(xiàng)前的字母填在題后的下劃線“ ”上。
1.以下非法的賦值語句是
A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;
2.下列符號(hào)串中,合法的C語言標(biāo)識(shí)將是
A) _235 B) 235_ C) a.235 D) #121
3.設(shè)有int x=8,y,z;,則執(zhí)行“y= 27、z=x++,x=y==z;”后,變量x的值是
A)0?????? B)1????? C)8?????? ? D)9
4.以下選項(xiàng)中均是合法的用戶標(biāo)識(shí)符是
A)A B) _123 C)3Dmax D) A.dat
P_0 temp p-pointer la0
do INT _print int
5.設(shè)float a;,并且a已賦值,則能將a的值四舍五入保留兩位小數(shù)的選項(xiàng)是
A)a=(a*100+0.5)/1 28、00; B)a=(int)(a*100+0.5)/100.0;
C)a=(int)(a*100+0.5)/100; D)a=(int)(a*100)/100+0.5;
6.在以下數(shù)組定義中,正確的是
A)int a[3+3]; B)int a[3,3]; C)int a[]; D)int a[3][];
7.設(shè)有int a=1,b=1;,執(zhí)行printf("%d,%d",(a++,--b),b-1);的輸出結(jié)果是
A)1,-1???? B)1,0????? C)0,-1?????? D)0,0
29、8.以下程序的輸出結(jié)果是
A)0,0,6 B)1,0,7 C)1,1,7 D)0,1,7
main( )
{ int i=0,j=0,k=6;
if ((++i>0) || (++j>0)) k++;
printf("%d, %d , %d \n",i,j,k);
}
9.有以下程序:
int fff(int a)
{ int b=0;
static int c=3;
b=b+1; c=c+1;
return(a+b+c);
}
main()
{ int a=2,i;
30、 for(i=0; i<3; i++) printf("%d ",fff(a));
}
執(zhí)行后輸出結(jié)果是
A)7 9 11 B)7 8 9 C)7 7 7 D)7 9 10
10.字符串"m\x43\\\np\102q"的長(zhǎng)度是
? A)7????? B)9??? C)15??? D)16
11.計(jì)算平方數(shù)時(shí)不可能引起二義性的宏定義是
A)#define SOR(x) x*x?????? B)#define SQR(x) (x)*(x)
C)#define SQR(x) (x*x)??? 31、D)# define SQR(x) ((x)*(x))
12.執(zhí)行下述程序的輸出結(jié)果是
? #include 32、的是
A)在傳遞數(shù)值時(shí),形式參數(shù)不予分配內(nèi)存
B)實(shí)際參數(shù)和形式參數(shù)可以同名
C)主調(diào)函數(shù)和被調(diào)用函數(shù)可以不在同一個(gè)文件中
D)函數(shù)間傳送數(shù)據(jù)可以使用外部全局變量
14.函數(shù)原型是void fun(int *a,int *b),且int x[10],y;,則下列調(diào)用中正確的是
A)fun(*x,&y); B)fun(&x,*y); C)fun(x,y); D)fun(x,&y);
15.已知指針變量p、q分別指向圖中所示結(jié)點(diǎn),則下列語句組中,可將p所指向的結(jié)點(diǎn)指向q所指向的結(jié)點(diǎn)的語句是
數(shù)據(jù)類型:
str 33、uct typ
{ int data; struct typ *next; };
A)p->next=q;????????????B)p->next=q.next; ??? C)p=q;???????????????? D) p=q->data;
16.設(shè)有int a[]={2,4,6,8,10},*p=a;,則值為8的表達(dá)式是
A)*p+3?????? B)*p+4????????? C)*(p+4)?????? D)*(a+3)
17.若有int a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},(* 34、p)[3]; p=a;
則*(*(p+1)+2)的值是
A) 5 B) 6 C) 7 D) 有語法錯(cuò)誤
18.執(zhí)行下面程序段后,c的二進(jìn)制值為
? int a=3,b=6;
? char c;
?? c=(a^b)<<2;
A)00011100??? B)00000111??? C)00000001??? D)00010100
19.設(shè)有int a[3][4],*p=a[1];,則指針變量p指向的元素是
A)a[1][0] B)a[0] 35、[1] C)a[1][1] D)a[1][3]
20.以“只讀”方式打開文本文件a:\aa.dat,下列語句中哪一個(gè)是正確的
A)fp=fopen("a:\\aa.dat","ab"); B)fp=fopen("a:\aa.dat","a");
C)fp=fopen("a:\aa.dat","wb"); D)fp=fopen("a:\\aa.dat","r");
21.若要執(zhí)行p=fopen("a1", "r"); 則p必須事先進(jìn)行定義
A)int p; B)int *p; 36、C)FILE p; D)FILE *p;
22. 在Turbo C環(huán)境下,已完成一個(gè)C源文件編輯后,則下列正確的敘述是
A)先連接,再編譯可生成.EXE文件 B)先編譯,再連接可生成.EXE文件
C)先編譯,再連接、編譯可生成.EXE文件 D)生成的.EXE文件不能在DOS下運(yùn)行
23.在下面選項(xiàng)中,指出一個(gè)源程序有兩個(gè)main()函數(shù)的出錯(cuò)信息是
A)Undefined symbol 'a' in function main
B)Code has no effct in function main
C)Redecla 37、ration of 'main'
D)Statement missing ; in function main
24.在下列選項(xiàng)中,沒有構(gòu)成死循環(huán)的程序段是
A) int i=100; B) for( ; ;); C) int k=10000; D) int s=36;
while(1) do{++k;} while(s);--s;
{ i=i%100+1; while(k>=10000);
if 38、(i>100)break;
}
25. 設(shè)有char string1[20]="ABCDE",string2[10]="xyz";,則執(zhí)行printf("%d",strlen(strcat(string1,string2)));后的輸出結(jié)果是
? A)9??? B)8?? ? C)5? ?? D)3
得分
評(píng)卷人
二、程序填空題(每空2分,共20分)下面給出了若干個(gè)程序,請(qǐng)按照題意將下劃線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。
26.下面函數(shù)的功能是返回形參p所指向的、長(zhǎng)度為n的整型數(shù)組中最小值所在的下標(biāo)(下標(biāo)從0開始計(jì)算)。
39、int fun(int *p,int n)
{ int i,j=0;
????? for(i=0;i<n;i++)
????? if(p[i]<p[j]) _______________
return(________);
}
27.將數(shù)組中的n個(gè)數(shù)據(jù)按逆序存放。
void reverse(int a[],int n)
{ int i,j,t;
i=0; j= ;
while(i 40、}
28.以下程序用遞歸法求解,當(dāng)最后一項(xiàng)的值小于0.00001時(shí),累加結(jié)束。
main()
{ double s,x;
double sum(double,double,double *);
scanf("%lf",&x);
s=1.0;
if(x>1.0)
{ printf("s=%10.5lf\n",sum(1.0,x,&s); )
else printf("data error!\n");
}
double sum(double t,double p, )
{ t=t/p;
41、 if(t>=0.00001)
sum(t,p,a);
*a+= ;
return(*a);
}
29.以下程序是將字符串a(chǎn)復(fù)制為字符串b,請(qǐng)將程序補(bǔ)充完整。
main()
{ char a[]="I am a boy.",b[20],*p1,*p2;
p1=a; p2=b;
while( )
{ *p2=*p1;
p1++,p2++;
}
;
printf("string a is:%s\n",a);
printf( 42、"string b is:%s\n",b);
}
30.將n個(gè)字符串按字母順序(由小到大)排序。
void sort(char *str[],int n)
{ char *t;
int i,j,k;
for(i=0; i 43、 }
}
}
得分
評(píng)卷人
三、修改下列程序的錯(cuò)誤(共5處,每處3分,共15分)
請(qǐng)改正下列程序中的錯(cuò)誤,使之能得出正確的結(jié)果。
注意:不得增行或減行,也不得更改程序的結(jié)構(gòu)。
31.給定程序中功能是:從鍵盤上輸入2個(gè)整數(shù),按從小到大的順序輸出這2個(gè)數(shù)。
/******found*******/
fun(int x, int y)
{ int temp;
temp=*x;*x=*y; * y=temp;
}
main()
{ int a,b;
/*******found******/
scanf("%d 44、,%d",&a,&b);
if(a
45、 found ******/
m=100*k+10*j+i;
if(m==i*i*i+j*j*j+k*k*k) printf("%d ",m);
}
}
得分
評(píng)卷人
四、程序設(shè)計(jì)(共2題,第一題5分,第二題10分,共15分)
33.用多分支語句實(shí)現(xiàn)下列功能:從鍵盤上輸入a op b(其中a,b為數(shù)值,op僅為字符+、 -、*、 / ),計(jì)算表達(dá)式a op b并輸出結(jié)果。例如輸入3+5〈回車〉,則輸出8(5分)。
34.主函數(shù)輸入50個(gè)學(xué)生的學(xué)號(hào)、姓名、3門課程的成績(jī)存入一個(gè)結(jié)構(gòu)型的數(shù)組,編寫函數(shù)統(tǒng)計(jì)每個(gè)學(xué)生的總分,在主函數(shù)中輸出學(xué)生的 46、學(xué)號(hào)、姓名、總分(10分)。
struct student
{ int num;
char name[20];
float score[3];
float sum; /* 總分 */
};
void total(struct student *p,int n)
{
}
main()
{ struct student stu[50];
int i;
for(i=0; i<50; i++)
{ scanf("%d",&stu[i].num); gets(stu[i].name);
scanf("%f",&s 47、tu[i].score[0]); scanf("%f",&stu[i].score[1]);
scanf("%f",&stu[i].score[2]);
}
total(stu,50);
for(i=0; i<50; i++)
printf("%d %s %f\n",stu[i].num,stu[i].name,stu[i].sum);
}
焦作工學(xué)院 2004~2005 學(xué)年第 2 學(xué)期
高級(jí)語言程序設(shè)計(jì) 試卷(A卷)
標(biāo)準(zhǔn)答案及評(píng)分標(biāo)準(zhǔn)
一、單項(xiàng)選擇題(每題2分,共50分)
1.C 2.B 48、 3.D 4.C 5.B
6.C 7.C 8.B 9.A 10.B
11.D 12.A 13.A/D 14.D 15.D
16.C 17.D 18.C 19.D 20. A
21.C 22.B 23.B 24.B 25.D
二、程序填空題(每空2分,共20分)
26.c=getchar() /* 字母拼寫錯(cuò)或缺少字母不扣分 */
49、 +65或+'A'
27.k=i
k=j
28.s[i]<='9' && s[i]>='0' /* 數(shù)字未加單撇不扣分 */
d[i]='\0' 或d[i]=0
29.strlen(str)-1 /* 沒有減1扣1分 */
j--
30.i++
s1[i++]=s2[j++] 或 s1[i]=s2[j];i++;j++
三、修改程序題(共有5處錯(cuò)誤,每處3分,共15分)
31.double fun(int n)
result*=n--
32.*sub=x-y
scanf("%f%f",&x,&y) /* 改對(duì)一個(gè)得1分,多改但未改錯(cuò)不扣 50、分 */
calc(x,y,&add,&sub) /* 改對(duì)一個(gè)得1分,得夠3分為止 */
四、程序設(shè)計(jì)題(共2題,第一題5分,第二題10分,共15分)
注意:編程方法不唯一,以下為參考答案。另外,主要測(cè)試編程方法,語法錯(cuò)誤在不影響閱讀情況下可不扣分,如少寫分號(hào)。
33. 方法一:
main()
{ int a,b,c,d,max;
scanf("%d,%d,%d",&a,&b,&c); /* 輸入1分 */
d=a>b?a:b; /* 比較占3分 */
max=d>c?d:c;
print 51、f("%d\n",max); /* 輸出1分 */
}
方法二:
main()
{ int a, b, c ;
scanf("%d,%d,%d",&a,&b,&c);
printf("%d\n",a>b?a>c?a:c:b>c?b:c);
}
方法三:使用if語句
main()
{ int a,b,c,d,max;
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(b>max) max=b;
if(c>max) max=c;
52、 printf("%d\n",max);
}
34.
方法一:
int isprime(int n)
{ int k,i;
k=sqrt(n); /* 寫成sqr不扣分 */
for(i=2; i<=k; i++) /* 8分*/
if(n%i==0) break;
if(i>k) return 1; /* 返回值 2分 */
else return 0;
}
方法二:
int isprime(int n)
{ int i;
for(i=2; i 53、%i==0) break;
if(i>=n) return 1; /* 寫成i≥n不扣分,主要測(cè)試編程方法 */
else return 0;
}
焦作工學(xué)院 2004~2005 學(xué)年第 2 學(xué)期
高級(jí)語言程序設(shè)計(jì) 試卷(B卷)
標(biāo)準(zhǔn)答案及評(píng)分標(biāo)準(zhǔn)
一、單項(xiàng)選擇題(每題2分,共50分)
1、C 2、A 3、B 4、B 5、B
6、A 7、D 8、B 9、B 10、A
11、D 12、C 13、A 14、D 15、A
16、D 17、B 18、D 19、A 20、 54、D
21、D 22、B 23、C 24、C 25、B
二、程序填空題(每空2分,共20分)
26、 j=i;
j
27、n-1
j--
28、double *a
t
29、*p1!='\0' *p2='\0' 30、k=i k=j
三、修改程序題(共有5處錯(cuò)誤,每處3分,共15分)
31、fun(int *x,int *y)
if(a>b)
fun(&a,&b);
32、j<=9
m=100*i+10*j+k
四、程序設(shè)計(jì)題(共2題,第一題5分,第二題10分,共15分)
注 55、意:編程方法不唯一,以下為參考答案。另外,主要測(cè)試編程方法,語法錯(cuò)誤在不影響閱讀情況下可不扣分,如少寫分號(hào)。
33、main()
{ int a,b;
char s;
printf("input a op b:");
scanf("%d %c %d",&a,&s,&b);
switch(s)
{ case '+' : printf("%d",a+b);break;
case '-' : printf("%d",a-b);break;
case '*' : printf("%d",a*b);break;
case '/' : pr 56、intf("%d",a/b);break;
default :break;
}
}
34、void total(struct student *p,int n)
{ int i,j;
for(i=0; i 57、學(xué)號(hào):
…………………………密………………………………封………………………………線…………………………
《C語言程序設(shè)計(jì)》 試卷(A卷)
考試方式:閉卷 本試卷考試分?jǐn)?shù)占學(xué)生總評(píng)成績(jī)的 70 %
總 分
題號(hào)
一
二
三
四
核分人
題分
復(fù)查人
得分
評(píng)卷人
一、單項(xiàng)選擇題(每題2分,共50分) 在每小題列出的四個(gè)選項(xiàng)中只有一個(gè)選項(xiàng)是符合題目要求的,請(qǐng)將正確選項(xiàng)前的字母填在題后的下劃線“ ”上。
1.根據(jù)C語言的特點(diǎn)以下選項(xiàng)中不 58、正確的選項(xiàng)是 B
A)習(xí)慣用小寫字母,大小寫字母有區(qū)別。
B)C語言主要由語句構(gòu)成,語句是C程序的基本單位。
C)C語言本身沒有輸入輸出語句。
D)用C語言寫的程序可移植性好。
2.C語言中運(yùn)算對(duì)象必須是整型數(shù)據(jù)的運(yùn)算符是 A
A)% B)/ C)! D)&&
3.若變量已正確定義并賦值,符合C語言語法的表達(dá)式正確的是 B
A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b
4.下列可以正確表示字符型常量的是 B
59、A)"a" B)'\t' C)'\028' D)'xy'
5.已知int x=1,y=2,z;執(zhí)行語句z=x>y?++x:++y;后,z的值是 C
A)1 B)2 C)3 D)4
6.若變量已正確定義,要將a和b中的數(shù)據(jù)進(jìn)行交換,下面選項(xiàng)中不正確的是 C
A)a=a+b,b=a-b,a=a-b; B)t=a,a=b,b=t;
C)a=t;t=b;b=a; D)t=b;b=a;a=t;
7.已知int x=6;則執(zhí)行x 60、+=x-=x*x;語句后,x的值為 B
A)36 B)-60 C)60 D)-24
8.以下程序的輸出結(jié)果是 C
A)0 B)1 C)2 D)3
main()
{ int a=2,b=-1,c=2;
if(a
61、語句后,a,b,c的值分別為 B
A)2,2,1 B)2,1,1 C)2,2,2 D)2,1,2
10.若變量已正確定義,以下語句的輸出結(jié)果是 A
A)%# B)*%$ C)% D)%$*
x=0;y=2;z=3;
switch(x)
{ case 0:switch(y)
{ case 1: printf("*");break;
case 2: printf("%");break;
}
case 1: switch(z 62、)
{ case 1: printf("$");
case 2: printf("*");break;
default: printf("#");
}
}
11.若有以下宏定義
#define N 2
#define Y(n) ((N+1)*n)
則執(zhí)行語句z=2*(N+Y(5));后的結(jié)果為 B
A)語句有錯(cuò)誤 B)z=34 C)z=70 D)z值不確定
12.以下不是死循環(huán)的語句為 63、 D
A)for(;;x+=i);
B)while(1){x++;}
C)for(i=10;;i--)sum+=i D)for(;(c=getchar())!='\n';)printf("%c",c);
13.以下程序段的輸出結(jié)果是D
A)9 B)1 C)11 D)10
int k,j,s;
for(k=2; k<6;k++,k++)
{
s=1;
for(j=k;j<6;j++)
s+=j;
}
printf("%d\n",s);
14.已知:int a[3][ 64、4];則對(duì)數(shù)組元素引用正確的是 C
A) a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1)
15.已知:char str[]="ab\n\018\\\"";則執(zhí)行語句:printf("%d\n",strlen(str));
的結(jié)果是 B
A)3 B)7 C)6 D)12
16.以下不能對(duì)二維數(shù)組a進(jìn)行正確初始化的語句是 C
A)int a[2][3]={0}; B)int a[][3]={{1,2}{0}};
C) 65、int a[2][3]={{1,2},{3,4},{5,6}}; D)int a[][3]={1,2,3,4,5,6};
17.下面對(duì)C語言的描述中,正確的是 A
A)在C語言中調(diào)用函數(shù)時(shí),只能將實(shí)參的值傳遞給形參,形參的值不能傳遞給實(shí)參。 B)C語言函數(shù)既可以嵌套定義又可以遞歸調(diào)用。
C)函數(shù)必須有返回值,否則不能使用函數(shù)。
D)C語言程序中有調(diào)用關(guān)系的所有函數(shù)都必須放在同一源程序文件中。
18.已知int *p();這里的p是 C
A)指向int類型的指針變量。
B)int 類型的指針數(shù)組。
C)一個(gè) 66、函數(shù),該函數(shù)的返回值是指向int類型的指針變量。
D)一個(gè)指向函數(shù)的指針變量,該函數(shù)的返回值是int類型。
19.已知int a[3][4],*p=a;p+=6;那么*p和 D 的值相同。
A)*(a+6) B)*(&a[0]+6)
C)*(a[1]+3) D)*(&a[0][0]+6)
20.已知函數(shù)定義如下:
abcd(char *s1,char *s2)
{
while(*s2++=*s1++);
}
函數(shù)abcd的功能是 A
A)串復(fù)制 B)求串長(zhǎng) C) 串比較 D)串反向
21.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,f)的功能是 B
A)從文件f中讀取長(zhǎng)度為n的字符串存入指針s所指的內(nèi)存
B) 從文件f中讀取長(zhǎng)度不超過n-1的字符串存入指針s所指的內(nèi)存
C) 從文件f中讀取n個(gè)字符串存入指針s所指的內(nèi)存
D)從文件f中讀取長(zhǎng)度為n-1的字符串存入指針s所指的內(nèi)存
22. 以下程序的輸出結(jié)果是 D
A)100 B)16
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 火力發(fā)電廠各設(shè)備的主要作用大全
- 3.高壓電工考試判斷練習(xí)題含答案
- 企業(yè)電氣防爆知識(shí)
- 13 低壓電工電工作業(yè)模擬考試題庫試卷含答案
- 電氣設(shè)備維修的十項(xiàng)原則
- 2.電氣電纜與直流模擬考試復(fù)習(xí)題含答案
- 電氣節(jié)能措施總結(jié)
- 2.電氣電機(jī)(一)模擬考試復(fù)習(xí)題含答案
- 接地電阻測(cè)量原理與測(cè)量方法
- 3.高壓電工作業(yè)模擬考試題庫試卷含答案
- 礦山維修電工安全技術(shù)操作規(guī)程
- 電工基礎(chǔ)口訣總結(jié)
- 3.某電廠值長(zhǎng)面試題含答案解析
- 電工基礎(chǔ)知識(shí)順口溜
- 配電系統(tǒng)詳解