2003年10月份高等教育自學(xué)考試全國(guó)統(tǒng)一命題考試
高級(jí)語(yǔ)言程序設(shè)計(jì)
課程代碼:0342
一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分) 在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫(xiě)在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無(wú)分。
1.組成C語(yǔ)言程序的是( )
A.過(guò)程 B.函數(shù)
C.子程序 D.主程序和子程序
2.編譯程序的功能是( )
A.將匯編語(yǔ)言程序轉(zhuǎn)換為目標(biāo)程序
B.將匯編語(yǔ)言程序轉(zhuǎn)換為高級(jí)語(yǔ)言程序
C.將高級(jí)語(yǔ)言程序轉(zhuǎn)換為目標(biāo)程序
D.將高級(jí)語(yǔ)言程序轉(zhuǎn)換為匯編語(yǔ)言程序
3.C語(yǔ)言中定義某個(gè)內(nèi)部變量時(shí),如果省略了存儲(chǔ)類(lèi)型符,則系統(tǒng)將默認(rèn)該變量是( )
A.自動(dòng)型 B.寄存器型
C.靜態(tài)型 D.外部參照型
4.不用第三個(gè)變量,將變量a和b的值進(jìn)行互換的操作是( )
A.a+=b;b-=a;a-=b; B.a+=b;b=a-b;a-=b;
C.b-=a;a-=b;a-=b; D.b-=a;a=b-a;a+=b;
5.自動(dòng)型變量分配在( )
A.內(nèi)存的數(shù)據(jù)區(qū)中 B.CPU的通用寄存器中
C.內(nèi)存的程序區(qū)中 D.內(nèi)存的堆棧區(qū)中
6.下列程序段運(yùn)行后,x的值是( )
a=1;b=2;x=0;
if(!(--a))x--;
if(!b)x=7;else ++x;
A.0 B.3
C.6 D.7
7.對(duì)do-whie語(yǔ)言錯(cuò)誤的說(shuō)法是( )
A.可構(gòu)成多重循環(huán)結(jié)構(gòu) B.循環(huán)次數(shù)不可能為0
C.循環(huán)次數(shù)可能為0 D.先執(zhí)行后判斷
8.設(shè)int x=1,a=9,b=6,c=7,d=8;則執(zhí)行語(yǔ)句:
if(a>b) if(c>d)x=2;else x=3;
后,x的值是( )
A.1 B.2
C.3 D.不確定
9.設(shè)char str1[10]=″ABCDE″,str2[10]=″X(qián)YZ″;則執(zhí)行語(yǔ)句:
printf(″%d″,strlen(strcpy(str1,str2)));
后的輸出是( )
A.3 B.5
C.8 D.9
10.初始化一維數(shù)組a正確的語(yǔ)句是( )
A.int a[10]=(0,0,0,0,0); B.int a[10]={ };
C.int a[ ]={10} ; D.int a[10]={[10*1]};
11.語(yǔ)句int (*p)( );的含義是( )
A.p是一個(gè)指向函數(shù)的指針變量,該函數(shù)的返回值是一個(gè)整型數(shù)據(jù)
B.p是指針變量,指向一個(gè)整型數(shù)據(jù)
C.p是一個(gè)指向一維數(shù)據(jù)的指針變量
D.p是指針函數(shù)
12.設(shè)int a[10],*p=a;
則對(duì)數(shù)組元素的正確引用是( )
A.a[p] B.p[a]
C.*(p+2) D.p+2
13.對(duì)于程序段 float f1(int a)
{int b;……}
main( )
{int m,n;
m=f1(n);……}
char f2(int x,int y)
{int a;……}
變量m,n的作用范圍是( )
A.整個(gè)程序段 B.main函數(shù)
C.main函數(shù)和f2函數(shù) D.mian函數(shù)和f1函數(shù)
14.若函數(shù)中局部變量的值經(jīng)函數(shù)調(diào)用后仍保留,則該局部變量定義為( )
A.自動(dòng)變量 B.內(nèi)部變量
C.外部變量 D.靜態(tài)變量
15.在下列運(yùn)算符中,優(yōu)先級(jí)最低的是( )
A.! B.?
C.( ) D.[ ]
16.對(duì)于如下定義的枚舉型
enum list1
{x1,x2,x3,x4=6,x5,x6};
枚舉常數(shù)x2和x6的值分別是( )
A.1,6 B.1,8
C.2,6 D.2,8
17.對(duì)于文件操作方式″rb+″,準(zhǔn)確的說(shuō)法是( )
A.可讀寫(xiě)文本文件 B.只讀二進(jìn)制文件
C.只讀文本文件 D.可讀寫(xiě)二進(jìn)制文件
18.?dāng)?shù)據(jù)-324在二進(jìn)制文件和文本文件中所占的字節(jié)數(shù)分別是( )
A.2,2 B.2,4
C.4,2 D.4,4
19.設(shè)int a=1,b=2,c=4;
經(jīng)過(guò)表達(dá)式(c=a!=b)&&(a= =b)&&(c=b)運(yùn)算后,a、b和c的值分別是( )
A.1,2,0 B.1,2,1
C.1,2,2 D.1,2,3
20.下列程序的運(yùn)行結(jié)果是( )
#define EVEN(x)x%2= =0?1:0
main( )
{
if(EVEN(9+1)) printf(″is even″);
else printf(″is odd″);
}
A.is even B.出錯(cuò)
C.無(wú)結(jié)果 D.is odd
第二部分 非選擇題(共80分)
二、填空題(本大題共10小題,每小題2分,共20分)
請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。
21.設(shè)char a,b;則表達(dá)式a/b-′c′的值的類(lèi)型為 。
22.設(shè)int k=-1;執(zhí)行printf(″%u″,k);后輸出的值是 。
23.設(shè)for(k=0;k<0;k++)++k;則該循環(huán)共執(zhí)行 次。
24.設(shè)int a =1,b=2;經(jīng)表達(dá)式a=a∧b,b=a∧b,a=a∧b運(yùn)算后a,b的值分別是 。
25.表示空類(lèi)型的保留字是 。
26.已知程序段:
char *p=″abcdefgh″;p+=4;
printf(″%c\n″,*p++);
運(yùn)行結(jié)果為 。
27.設(shè)
struct student
{ int no;char name[12];
char sex;float score[4];
}stu1;
在程序執(zhí)行時(shí),系統(tǒng)為stu1分配 個(gè)字節(jié)的內(nèi)存空間。
28.寫(xiě)出“n是小于整數(shù)m的偶數(shù)”的表達(dá)式 。
29.字符串″ABCD\t\\\123″的長(zhǎng)度是 。
30.設(shè)union
{ int b;char a[9];float x;}un;
則變量un所占的字節(jié)數(shù)是 。
三、程序分析題(本大題共5小題,每小題5分,共25分)
閱讀下列程序,將輸出結(jié)果寫(xiě)到各題右側(cè)的空白處
31.sum(int n)
{
if(n= =1) return(1);
else return n+sum(n-1);
}
main( )
{
printf(″%d\n″,sum(10));
}
32.設(shè)從鍵盤(pán)輸入282
sub(int n)
{int s=1;
do
{ s*=n%10;n/=10;}
while(n);
return s;
}
main( )
{ int n;
scanf (″%d″,&n);
n=sub(n);
printf(″%d\n″,n);
}
33.#define N 7
#define PRINT for(i=0;i<N;i++)printf(″%5d″,a[i]);printf(″\n″);
main( )
{int i,j,temp,a[N]={1,2,3,4,5,6,7};
PRINT
for(i=0,i<N/2,i++)
{j=N-1-i;temp=a[i];a[i]=a[j];a[j]=temp;}
PRINT
}
34.int x=30;y=50;
sub(x,y)
{ y=x>y?x:y;
return y;
}
main( )
{
{int x=100;
printf(″%d\n″,sub(x,y));
}
printf(″%d,%d\n″,x,y);
}
35.設(shè)文件file1.c的內(nèi)容為COMPUTER
#include ″stdio.h″
main( )
{ FILE *fp;
char ch;
if((fp=fopen(″file1.c″,″r″))= =NULL)
{ printf(″Cannot open file \n″);
exit(0);
}
while(!feof(fp))
{
ch=fgetc(fp);if(ch>=′A′&&ch<=′Z′)fputc(ch+32,stdout);
}
fclose(fp);
}
四、程序填充題(本大題共3小題,每小題6分,共18分)
給出下列程序,將橫線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。
36.將一個(gè)十進(jìn)制整數(shù)n轉(zhuǎn)變?yōu)槎M(jìn)制數(shù)。
main( )
{ int i=0,j,n,num[20];
scanf(″%d″, ); /*第一空*/
while(n!=0)
{ num[i++]= ; /*第二空*/
n= ; /*第三空*/
}
for(j=i-1;j>=0;j--)printf(″%d″,num [j]);
}
37.一個(gè)一維數(shù)組和一個(gè)二維數(shù)組同處一個(gè)共用型,將數(shù)據(jù)輸入一維數(shù)組后,在二維數(shù)組中輸出。
main( )
{union data
{ int a[10];
int b ;/*第一空*/
};
union data ab;
int i,j;
for(i=0;i<10,i++)
scanf(″%d″, ); /*第二空*/
for(i=0;i<2;i++)
for(j=0;j<5;j++)
printf(″%5d″, );/*第三空*/
}
38.用指針?lè)ㄝ敵龆S數(shù)組,每行三個(gè)數(shù)。
main( )
{int i,j,a[3][3]={1,2,3,4,5,6,7,8,9},(*p)[3];
; /*第一空*/
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) printf(″%5d″, ); /*第二空*/
;/*第三空*/
}
}
五、程序設(shè)計(jì)題(第39小題5分,第40、41小題各6分,共17分)
39.輸出100之內(nèi)所有個(gè)位數(shù)字為6且能被3整除的自然數(shù)。(如:36,66,96……)
40.鍵入一串字符(換行符結(jié)束),用循環(huán)語(yǔ)句將其中的大小寫(xiě)英文字母互換后輸出。
41.設(shè)int a[3][4];先為數(shù)組輸滿(mǎn)數(shù)據(jù),再將該數(shù)組周邊的元素輸出(元素輸出次序不限)。