全國2007年10月高等教育自學(xué)考試
高級(jí)語言程序設(shè)計(jì)(一)試題
課程代碼:00342
一、單項(xiàng)選擇題(本大題共15小題,每小題2分,共30分)
在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無分。
1.可以作為自定義標(biāo)識(shí)符的是( )。
A.2x
B.break
C.m-n
D.m_n
2.正確的變量定義是(?。?。
A.unsigned long d=1000;
B.float m1=m2=10.0;
C.char c1=’A’,c2=A;
D.double x=0.618,x=3.14;
3.表達(dá)式的值為0的是(?。?。
A.5/5%5
B.5>2
C.!4
D.0x7&7
4.設(shè)int a=1,b=2;,則執(zhí)行a=b+2,a++,a+b;后a和b的值分別是(?。?。
A.1和2
B.3和2
C.4和7
D.5和2
5.設(shè)int a=2,b=3,c=4;,則表達(dá)式a>b&&b A.-1
B.0
C.1
D.2
6.設(shè)int a=2,b=3,x,y;,則能正確執(zhí)行的語句是( )。
A.scanf(〞%d,%d〞,x-y,x+y);
B.printf(〞%d\n〞,a%b);
C.printf(〞%f\n〞,a+b);
D.scanf(〞%d,%d〞,x,y);
7.設(shè)char s[10]= 〞abcde〞,t[ ]= 〞12345〞; ,則s和t在內(nèi)存中分配的字節(jié)數(shù)分別是( )。
A.6和5
B.6和6
C.10和5
D.10和6
8.設(shè)int a=10,*p=&a; ,則執(zhí)行printf(〝%d\n〞,*p+a);的結(jié)果是(?。?。
A.10
B.20
C.30
D.40
9.自定義函數(shù)中形式參數(shù)的作用域是(?。?。
A.本文件
B.本函數(shù)
C.main 函數(shù)
D.整個(gè)程序
10.設(shè)int b[ ][5]={1,2,3,4,5,6,7};,則元素b[1][2]的值是(?。?。
A.0
B.2
C.6
D.7
11.對(duì)函數(shù)而言,敘述正確的是(?。?。
A.函數(shù)中只能有一個(gè)return 語句
B.當(dāng)函數(shù)的形參是數(shù)組時(shí)形實(shí)結(jié)合為值傳遞方式
C.程序中只能有一個(gè)main函數(shù)
D.無參函數(shù)的函數(shù)體內(nèi)不能出現(xiàn)return語句
12.執(zhí)行下列程序段后輸出的結(jié)果是(?。?。
int x,y,z=1;
for(x=1,y=-1;x printf(〞%d\n〞,z);
A.1
B.2
C.5
D.6
13.設(shè)static int a[3]={1,2,3};int*p[ ]={&a[0],&a[1],&a[2]};則與數(shù)組元素a[1]等價(jià)的是( )。
A.*p[1]
B.p[1]
C.*p+1
D.p+1
14.設(shè)struct{char name[10];int age;}stu[2]={{ 〞Tom〞,25},{〞Mary〞,26}},*p=stu;則執(zhí)行語句printf(〞%s%d\n〞,p->name,stu[1].age);后輸出結(jié)果是(?。?。
A.Tom25
B.Tom26
C.Mary25
D.Mary26
15.設(shè)typedef double DB;,則與DB u[5];的等價(jià)形式是(?。?。
A. double db[5];
B.double DB[5];
C.double u;
D.double u[5;]
二、填空題(本大題共10小題,每小題2分,共20分)
請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。
16.一個(gè)字符型變量所占內(nèi)存的字節(jié)數(shù)是____________________。
17.寫出公式
對(duì)應(yīng)的C語言表達(dá)式_________________。
18.執(zhí)行語句printf(〞%s\n, 〞〞 World\0Wide\0Web〞);后的輸出結(jié)果是_______________。
19.設(shè)int a,b=5;,則執(zhí)行表達(dá)式a=b-2==3后a的值是_________________。
20.設(shè)char s[20]= 〞My〞;,則執(zhí)行strcat(s, 〞Sun! 〞)后s的內(nèi)容是___________________。
21.設(shè)float x=23.65;, 則執(zhí)行語句printf (〞%d\n〞,(int)(x+0.5));后輸出結(jié)是_______________。
22.若定義函數(shù)char*fun( ){…},則該函數(shù)的返回值類型是__________________。
23.設(shè)int x=-9,y;,則執(zhí)行y=x>=0?x:-x;后y的值是_________________。
24.若函數(shù)調(diào)用語句為f(a,b,f(a+b,a-b,b));,則函數(shù)f的參數(shù)個(gè)數(shù)是__________________。
25.設(shè)int a=10;,則執(zhí)行語句a+=a-=a+a;后a 的值是_________________。
三、程序分析題(本大題共4小題,每小題4分,共16分)
閱讀下列程序,請(qǐng)將輸出結(jié)果寫到各題右側(cè)的空白處。
26.main()
{int a=1,b=2,c=3;
if(a<=c)
if(b==c)printf(〞a=%d\n〞,a);
else printf(〞b=%d\n〞,b);
printf(〞c=%d\n〞,c);
}
27.int f(int n)
{static int m=5;
return ++m+n;
}
main()
{int i;
for(i=0;i<3;i++)printf(〞%5d〞,f(i));
printf(〞\n〞);
}
28.#define SIZE 4
main()
{int n[SIZE]={8,3,4,1};
int i, j;
for (i=0;i {printf{〞%d〞,n[i]};
for(j=1;j<=n[i];j++)printf(〞*〞);
printf(〞\n〞);
}
}
29.int fm(int a,int b)
{if(b==1)return a;
else return a+fm(a,b-1);
}
main()
{
printf(〞%d\n〞,fm(4,3));
}
四、程序填充題(本大題共3小題,每小題6分,共18分)
請(qǐng)將下列程序橫線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。
30.函數(shù)fun 用于計(jì)算數(shù)組各元素值的平方,主函數(shù)調(diào)用fun并輸出各元素的值。
void fun(int num,int a[ ])
{int i;
for (i=0;i<___________;i++)a[i]=a[i]*a[i]; /*第一空*/
}
main()
{
int i,b[5]={1,2,3,4,5};
fun(5,_______); /*第二空*/
for (i=0;i<5;i++)printf(〞%5d〞,________); /*第三空*/
printf(〞\n〞);
}
31.從鍵盤輸入一串字符(“#”作為結(jié)束標(biāo)志),將其寫入文本文件file.dat 中保存。
#include
#include
main()
{char ch;
FILE*fp;
if((fp=fopen(〞file.dat〞, 〞______〞))= =NULL) /*第一空*/
{printf(〞Can not open file\n〞);exit(0);}
ch=getchar();
while (ch!=’# ’)
{fputc(________,fp); /*第二空*/
ch=getchar();
}
fclose(________); /*第三空*/
}
32.從鍵盤輸入x的值,根據(jù)以下公式計(jì)算并輸出x和y 的值。
#include
#include
main()
{float x,y;
scanf(〞%f〞,______); /*第一空*/
if(x<0)printf(〞input error!\n〞);
else
{switch ((int)(x/2))
{case 0:y=x;_______; /*第二空*/
case 1:
case 2:y=x*x+1;break;
case 3:
case 4:y=_____________;break; /*第三空*/
default :y=1/(x*x+1);
}
printf(〞x=%7.2f,y=%10.6f\n〞,x,y);
}
}
五、程序設(shè)計(jì)題(本大題共2小題,每小題8分,共16分)
33.從鍵盤輸入100個(gè)整數(shù),計(jì)算并輸出大于等于零的數(shù)的平均值(保留小數(shù)點(diǎn)后兩位)。
34.(1)編寫一個(gè)計(jì)算梯形面積的函數(shù)。函數(shù)頭是:float area(float t,float b,float h)
其中變量t、b和h分別表示梯形的上底、下底和高。
(2)編寫主函數(shù)從鍵盤輸入梯形的上底、下底和高的值,調(diào)用上述函數(shù)輸出梯形面積
(保留小數(shù)點(diǎn)后兩位)。
高級(jí)語言程序設(shè)計(jì)(一)試題
課程代碼:00342
一、單項(xiàng)選擇題(本大題共15小題,每小題2分,共30分)
在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無分。
1.可以作為自定義標(biāo)識(shí)符的是( )。
A.2x
B.break
C.m-n
D.m_n
2.正確的變量定義是(?。?。
A.unsigned long d=1000;
B.float m1=m2=10.0;
C.char c1=’A’,c2=A;
D.double x=0.618,x=3.14;
3.表達(dá)式的值為0的是(?。?。
A.5/5%5
B.5>2
C.!4
D.0x7&7
4.設(shè)int a=1,b=2;,則執(zhí)行a=b+2,a++,a+b;后a和b的值分別是(?。?。
A.1和2
B.3和2
C.4和7
D.5和2
5.設(shè)int a=2,b=3,c=4;,則表達(dá)式a>b&&b
B.0
C.1
D.2
6.設(shè)int a=2,b=3,x,y;,則能正確執(zhí)行的語句是( )。
A.scanf(〞%d,%d〞,x-y,x+y);
B.printf(〞%d\n〞,a%b);
C.printf(〞%f\n〞,a+b);
D.scanf(〞%d,%d〞,x,y);
7.設(shè)char s[10]= 〞abcde〞,t[ ]= 〞12345〞; ,則s和t在內(nèi)存中分配的字節(jié)數(shù)分別是( )。
A.6和5
B.6和6
C.10和5
D.10和6
8.設(shè)int a=10,*p=&a; ,則執(zhí)行printf(〝%d\n〞,*p+a);的結(jié)果是(?。?。
A.10
B.20
C.30
D.40
9.自定義函數(shù)中形式參數(shù)的作用域是(?。?。
A.本文件
B.本函數(shù)
C.main 函數(shù)
D.整個(gè)程序
10.設(shè)int b[ ][5]={1,2,3,4,5,6,7};,則元素b[1][2]的值是(?。?。
A.0
B.2
C.6
D.7
11.對(duì)函數(shù)而言,敘述正確的是(?。?。
A.函數(shù)中只能有一個(gè)return 語句
B.當(dāng)函數(shù)的形參是數(shù)組時(shí)形實(shí)結(jié)合為值傳遞方式
C.程序中只能有一個(gè)main函數(shù)
D.無參函數(shù)的函數(shù)體內(nèi)不能出現(xiàn)return語句
12.執(zhí)行下列程序段后輸出的結(jié)果是(?。?。
int x,y,z=1;
for(x=1,y=-1;x
A.1
B.2
C.5
D.6
13.設(shè)static int a[3]={1,2,3};int*p[ ]={&a[0],&a[1],&a[2]};則與數(shù)組元素a[1]等價(jià)的是( )。
A.*p[1]
B.p[1]
C.*p+1
D.p+1
14.設(shè)struct{char name[10];int age;}stu[2]={{ 〞Tom〞,25},{〞Mary〞,26}},*p=stu;則執(zhí)行語句printf(〞%s%d\n〞,p->name,stu[1].age);后輸出結(jié)果是(?。?。
A.Tom25
B.Tom26
C.Mary25
D.Mary26
15.設(shè)typedef double DB;,則與DB u[5];的等價(jià)形式是(?。?。
A. double db[5];
B.double DB[5];
C.double u;
D.double u[5;]
二、填空題(本大題共10小題,每小題2分,共20分)
請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。
16.一個(gè)字符型變量所占內(nèi)存的字節(jié)數(shù)是____________________。
17.寫出公式
對(duì)應(yīng)的C語言表達(dá)式_________________。18.執(zhí)行語句printf(〞%s\n, 〞〞 World\0Wide\0Web〞);后的輸出結(jié)果是_______________。
19.設(shè)int a,b=5;,則執(zhí)行表達(dá)式a=b-2==3后a的值是_________________。
20.設(shè)char s[20]= 〞My〞;,則執(zhí)行strcat(s, 〞Sun! 〞)后s的內(nèi)容是___________________。
21.設(shè)float x=23.65;, 則執(zhí)行語句printf (〞%d\n〞,(int)(x+0.5));后輸出結(jié)是_______________。
22.若定義函數(shù)char*fun( ){…},則該函數(shù)的返回值類型是__________________。
23.設(shè)int x=-9,y;,則執(zhí)行y=x>=0?x:-x;后y的值是_________________。
24.若函數(shù)調(diào)用語句為f(a,b,f(a+b,a-b,b));,則函數(shù)f的參數(shù)個(gè)數(shù)是__________________。
25.設(shè)int a=10;,則執(zhí)行語句a+=a-=a+a;后a 的值是_________________。
三、程序分析題(本大題共4小題,每小題4分,共16分)
閱讀下列程序,請(qǐng)將輸出結(jié)果寫到各題右側(cè)的空白處。
26.main()
{int a=1,b=2,c=3;
if(a<=c)
if(b==c)printf(〞a=%d\n〞,a);
else printf(〞b=%d\n〞,b);
printf(〞c=%d\n〞,c);
}
27.int f(int n)
{static int m=5;
return ++m+n;
}
main()
{int i;
for(i=0;i<3;i++)printf(〞%5d〞,f(i));
printf(〞\n〞);
}
28.#define SIZE 4
main()
{int n[SIZE]={8,3,4,1};
int i, j;
for (i=0;i
for(j=1;j<=n[i];j++)printf(〞*〞);
printf(〞\n〞);
}
}
29.int fm(int a,int b)
{if(b==1)return a;
else return a+fm(a,b-1);
}
main()
{
printf(〞%d\n〞,fm(4,3));
}
四、程序填充題(本大題共3小題,每小題6分,共18分)
請(qǐng)將下列程序橫線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。
30.函數(shù)fun 用于計(jì)算數(shù)組各元素值的平方,主函數(shù)調(diào)用fun并輸出各元素的值。
void fun(int num,int a[ ])
{int i;
for (i=0;i<___________;i++)a[i]=a[i]*a[i]; /*第一空*/
}
main()
{
int i,b[5]={1,2,3,4,5};
fun(5,_______); /*第二空*/
for (i=0;i<5;i++)printf(〞%5d〞,________); /*第三空*/
printf(〞\n〞);
}
31.從鍵盤輸入一串字符(“#”作為結(jié)束標(biāo)志),將其寫入文本文件file.dat 中保存。
#include
#include
main()
{char ch;
FILE*fp;
if((fp=fopen(〞file.dat〞, 〞______〞))= =NULL) /*第一空*/
{printf(〞Can not open file\n〞);exit(0);}
ch=getchar();
while (ch!=’# ’)
{fputc(________,fp); /*第二空*/
ch=getchar();
}
fclose(________); /*第三空*/
}
32.從鍵盤輸入x的值,根據(jù)以下公式計(jì)算并輸出x和y 的值。
#include
#include
main()
{float x,y;
scanf(〞%f〞,______); /*第一空*/
if(x<0)printf(〞input error!\n〞);
else
{switch ((int)(x/2))
{case 0:y=x;_______; /*第二空*/
case 1:
case 2:y=x*x+1;break;
case 3:
case 4:y=_____________;break; /*第三空*/
default :y=1/(x*x+1);
}
printf(〞x=%7.2f,y=%10.6f\n〞,x,y);
}
}
五、程序設(shè)計(jì)題(本大題共2小題,每小題8分,共16分)
33.從鍵盤輸入100個(gè)整數(shù),計(jì)算并輸出大于等于零的數(shù)的平均值(保留小數(shù)點(diǎn)后兩位)。
34.(1)編寫一個(gè)計(jì)算梯形面積的函數(shù)。函數(shù)頭是:float area(float t,float b,float h)
其中變量t、b和h分別表示梯形的上底、下底和高。
(2)編寫主函數(shù)從鍵盤輸入梯形的上底、下底和高的值,調(diào)用上述函數(shù)輸出梯形面積
(保留小數(shù)點(diǎn)后兩位)。

