2003年1月份全國(guó)高等教育自學(xué)考試高級(jí)語言程序設(shè)計(jì)(一)試題

  • 發(fā)布時(shí)間:2024-09-15 16:21:23
  • 來源:本站整理
  • 閱讀:
導(dǎo)讀:
  課程代碼:00342
  第一部分選擇題
  一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個(gè)選項(xiàng)中只有一個(gè)選項(xiàng)是符合題目要求的,請(qǐng)將正確選項(xiàng)前的字母填在題后的括號(hào)內(nèi)。
  1.屬于C語言基本數(shù)據(jù)類型的是()
  A.指針型B.無符號(hào)整型
  C.數(shù)組型D.結(jié)構(gòu)型
  2.C語言的長(zhǎng)整型數(shù)值在計(jì)算機(jī)

第一部分選擇題

一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個(gè)選項(xiàng)中只有一個(gè)選項(xiàng)是符合題目要求的,請(qǐng)將正確選項(xiàng)前的字母填在題后的括號(hào)內(nèi)。

1.屬于C語言基本數(shù)據(jù)類型的是()

A.指針型B.無符號(hào)整型

C.數(shù)組型D.結(jié)構(gòu)型

2.C語言的長(zhǎng)整型數(shù)值在計(jì)算機(jī)中占用的字節(jié)個(gè)數(shù)是()

A.1B.2

C.3D.4

3.C語言中,″\x3d″在內(nèi)存中占用的字節(jié)數(shù)是()

A.1B.2

C.4D.5

4.設(shè)intx;則執(zhí)行printf(″%x\n″,~x^x);的結(jié)果是()

A.0B.1

C.ffD.ffff

5.對(duì)于while語句,錯(cuò)誤的說法是()

A.用條件控制循環(huán)體的執(zhí)行次數(shù)

B.循環(huán)體至少要執(zhí)行一次

C.循環(huán)體有可能一次也不執(zhí)行

D.循環(huán)體中可以包含若干條語句

6.設(shè)int a=9,b=20;則printf(″%d,%d\n″,a-,-b);的輸出結(jié)果是()

A.9,19B.9,20

C.10,19D.10,20

7.執(zhí)行下列語句

int a=8,b=7,c=6;

if(a b)if(b c){a=c;c=b;}

printf(″%d,%d,%d\n″,a,b,c);

后輸出的結(jié)果是()

A.6,7,7B.6,7,8

C.8,7,6D.8,7,8

8.設(shè)static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么()

A.x數(shù)組的長(zhǎng)度等于y數(shù)組的長(zhǎng)度

B.x數(shù)組的長(zhǎng)度大于y數(shù)組的長(zhǎng)度

C.x數(shù)組的長(zhǎng)度少于y數(shù)組的長(zhǎng)度

D.x數(shù)組與y數(shù)組的存儲(chǔ)區(qū)域相同

9.設(shè)int i,x={1,2,3,4,5,6,7,8,9};

則下面語句

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

printf(″%d″,x[i][2-i]);

的輸出結(jié)果是()

A.147B.159

C.357D.369

10.設(shè)int b[ ]={1,2,3,4},y,*p=b;

則執(zhí)行語句y=*p++;之后,變量y的值為()

A.1B.2

C.3D.4

11.設(shè)int a,*p;則語句p= a;中的運(yùn)算符“ ”的含義是()

A.位與運(yùn)算B.邏輯與運(yùn)算

C.取指針內(nèi)容D.取變量地址

12.若函數(shù)能被其它編譯單位引用,那么函數(shù)定義時(shí)的存儲(chǔ)類型應(yīng)選用()

A.autoB.static

C.externD.register

13.下面函數(shù)定義有錯(cuò)誤的是()

A.f1(x1,x2)B.f1(x1,x2)

int x1,x2;int x1;int x2;

{函數(shù)體}{函數(shù)體}

C.f1(int x1,x2)D.f1(int x1,int x2)

{函數(shù)體}{函數(shù)體}

14.C語言中計(jì)算a3正確的表達(dá)是()

A.a^3B.pow(a,3)

C.a**3D.power(a,3)

15.下列定義正確的是()

A.anum t={a,b}x;B.enum t{1,2}x;

C.anum {′+′,′-′}x;D.enum t{a,b}x;

16.設(shè)有定義:union u{int a;float b};

char c;}aa;

則printf(″%d\n″,sizeof(aa));的輸出是()

A.32B.16

C.12D.8

17.數(shù)據(jù)-35.78在文本文件中占用的字節(jié)個(gè)數(shù)是()

A.4B.5

C.6D.8

18.在下列有關(guān)宏替換的敘述中,正確的說法是()

A.宏替換占用運(yùn)行時(shí)間

B.宏名有類型

C.帶參數(shù)的宏替換和函數(shù)等價(jià)

D.宏替換只是字符替換

19.下列程序的運(yùn)行結(jié)果是()

# defineA5

# defineBA+1

main( )

{int a;

a=B;

printf(″%d\n″a-);

}

A.6B.5

C.4D.出錯(cuò)

20.為了向二進(jìn)制文件尾部增加數(shù)據(jù),打開文件的方式應(yīng)采用()

A.″ab″B.″rb+″

C.″wb″D.″wb+″

第二部分非選擇題

二、填空題(本大題共10小題,每小題2分,共20分)

21.設(shè)int y;執(zhí)行表達(dá)式(y=4)||(y=5)||(y=6)后,y的值是______.

22.設(shè)char ch=′A′;則printf(″%c″,(ch =′A′ ch =′Z′)ch+32:ch);的值是_____.

23.結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和______.

24.下列程序

int x=3;

do{printf(″%d″,-x);}while(!x);

循環(huán)執(zhí)行的次數(shù)是______.

25.在C語言中,一個(gè)二維數(shù)組可以看成若干個(gè)______數(shù)組。

26.設(shè)int a={{1,3,5,7},{2,4,6,8}};則*(*a+1)的值為______.

27.若函數(shù)定義為

int data()

{float x=9.9;

return(x);

}

則函數(shù)返回的值是______.

28.設(shè)struct student

{int no;char name ;

float score;

{s1,*p= s1;。

用指針變量p給s1的成員no賦值1234的方法是______.

29.判斷文本文件是否結(jié)束時(shí)使用的符號(hào)常量EOF的值是______.

30.設(shè)有一個(gè)名為″myfile.c″的C程序,

其主函數(shù)為mian(int argc,char *argv[ ])。如果在執(zhí)行時(shí),輸入的命令行為

myfile aa bb ↙

則形式參數(shù)argc的值是______.

三、程序分析題(本大題共5小題,每小題5分,共25分)

閱讀下列程序,將輸出結(jié)果寫到各題右側(cè)的空白處

31.fun(int x)

{

int y=0;

static int z=3;

z++;++y;

return(x+y+z);

}

main( )

{

int I,x=2;

for(i=0;i 2;i++)

printf(″%5d″,fun(x++));

}

32.main( )

{

int s=0,i;

for(i=1;;i++)

{

if(s 50)break;

if(i%2==0) s+=i;

}

printf(″i=%d,s=%d\n″,i,s);

}

33.gcd(int m,int n)

{ if(m==n)return m;

else if(m n) return gcd(m-n,n);

else return gcd(m,n-m);

}

main( )

{

printf(″Gcd=%d\n″,gcd(24,36));

}

34.# include stdio.h

main( )

{int i=0;

char c,s #;=″SABC″;

while(c=s[i])

{

switch(c)

{

case ′A′:i++;break;

case ′B′:++i;

default:putchar(c);i++;

}

putchar(′*′);

}

}

35.int a1=300,a2=400;

main( )

{int a3=100,a4=200;

sub1(a3,a4);

sub1(a1,a2);

printf(″%d,%d,%d,%d\n″,a1,a2,a3,a4);

}

sub1(int x,int y)

{ a1=x;

x=y;

y=a1;

}

四、程序填充題(本大題共3小題,每小題6分,共18分)

給出下列程序,將橫線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。

36.將十個(gè)整數(shù)輸入數(shù)組,求出其平均值并輸出。

main( )

{int i,a ,sum=0,*p=______;/*第一空*/

for(i=0;i 10;i++)

{ scanf(″%d″,p);sum+=______;/*第二空*/

printf(″%8.2f\n″,______);/*第三空*/

}

37.輸入一個(gè)無符號(hào)整數(shù)后求出它的各位數(shù)之和并輸出。

例如若輸入123,則將各位之和6(即1+2+3)輸出。

______f(num)/*第一空*/

unsigned int num;

{ unsigned int k=0;

do

{ k+=______;/*第二空*/

num/=10;

} while(num);

______;/*第三空*/

}

main( )

{unsigned int n;

scanf(″%d″, n);

printf(″%u\n″,f(n));

}

38.為數(shù)組輸入數(shù)據(jù),逆序置換后輸出。(逆序置換是指:數(shù)組的首元素和末元素置換,第二個(gè)元素和倒數(shù)第二個(gè)元素置換,………)

# define N8

main()

{int i,j,t,a[N];

for(i=0;i N,i++)scanf(″%d″,a+i);

i=0;j=N-1;

while(i j)

{ t=*(a+i);________;/*第一空*/

______=t;/*第二空*/

i++;______;/*第三空*/

}

for(i=0;i N;i++)printf(″%5d″,*(a+i));

}

五、程序設(shè)計(jì)題(第39小題5分,第40、41小題各6分,共17分)。

39.將100個(gè)整數(shù)輸入數(shù)組后按每行10個(gè)數(shù)輸出。

40.計(jì)算e=1+ 的值并輸出(設(shè)n=20)。

41.生成Fibonacci數(shù)列的前20項(xiàng)并輸出,其中

fi=

相關(guān)閱讀