设为首页收藏本站

湖北自考网论坛-湖北自考论坛|湖北自考网|湖北最大自学考试社区论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

楼主: 路人甲
打印 上一主题 下一主题

高级语言程序设计(一) 00342 全国高等教育自学考试 概述 [复制链接]

Rank: 9Rank: 9Rank: 9

地板
发表于 2005-12-31 09:37:36 |只看该作者

第6章 函数

一、选择题

1、执行下列程序

int a = 3, b = 4;

void fun(int x1, int x2)

{printf(″﹪d, ﹪d \ n″, x1 + x2, b);}

main()

{int a = 5, b = 6;fun(a, b);}

后输出的结果是 【 C】

A. 3,4 B. 11,1 C. 11,4 D. 11,6

2、下面函数定义有错误的是( C )

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

int x1,x2; int x1;int x2;

{函数体} {函数体}

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

{函数体} {函数体}

3、C语言中计算a3正确的表达是( B)

A.a^3 B.pow(a,3) C.a**3 D.power(a,3)

二、填空题

1、被调函数在执行结束时,这个函数中定义的 静态存储,或者static 类型的变量不被释放。

2、若函数定义为

int data( )

{ float x=9.9;

return(x);

}

则函数返回的值是 3

三、程序分析题 列程序,将输出结果写到各题右侧的空白处

1、 int a = 200;

main()

{int i;

for(i = 1;i< = 5;i + +)

{a + + ;

printf(″﹪d,″,a);

s()

}

{

s()

{static int a = 20;

a + + ;

printf(″﹪d \ n″,a);

a + + ;

}

答:201,21

202,22

203,23

204,24

2、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++));

}

答: 7 9

3、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));

}

答:Gcd=12

4、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;

}

答:100,400,100,200

四、程序填充题

1、输入一个无符号整数后求出它的各位数之和并输出。

例如若输入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));

}

答: (1)unsigned (2)num%10 (3)return(k)

使用道具 举报

Rank: 9Rank: 9Rank: 9

板凳
发表于 2005-12-31 09:37:16 |只看该作者

第5章 指针

一、选择题

1、设char str[100];int i = 5;则引用数组元素的错误形式是 【D 】

A.str[i + 10] B.(str + i) C.(str + i - 1) D.((str + + ) + i)

2、设int x[] = {1,2,3,4,5,6},* p = x;则值为3的表达式是【 B】

A.p + = 2, * + + p B.p + = 2, * p + + C.p + = 3, * p D.p + = 2, + + * p

3、设int a,*p;则语句p=&a;中的运算符“&”的含义是(D)

A.位与运算 B.逻辑与运算 C.取指针内容 D.取变量地址

二、填空题

1、设int a[3][4]={{1,3,5,7},{2,4,6,8}};则*(*a+1)的值为___。

三、程序分析题

四、程序填充题

1、将十个整数输入数组,求出其平均值并输出。

main( )

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

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

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

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

}

答: (1)a (2) *p++ (3) 1.0*sum/10

2、为数组输入数据,逆序置换后输出。(逆序置换是指:数组的首元素和末元素置换,第二个元素和倒数第二个元素置换,………)

# define N 8

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));

}

答: (1)*(a+i)=*(a+j) (2)*(a+j) (3)J——

使用道具 举报

Rank: 9Rank: 9Rank: 9

沙发
发表于 2005-12-31 09:36:50 |只看该作者

第4章 数组

一、选择题

1、设int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是【 B】 A. 2 B. 3 C. 4 D. 无确定值

2、执行下列程序

int a[3][3]={{1},{2},{3}};

int b[3][3]={1,2,3};

main()

{printf(″﹪d \ n″,a[1][0] + b[0][0]);}

后输出的结果是 【 D】

A. 0 B. 1 C. 2 D. 3

3、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么( A )

A.x数组的长度等于y数组的长度B.x数组的长度大于y数组的长度

C.x数组的长度少于y数组的长度D.x数组与y数组的存储区域相同

4、设int i,x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句

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

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

的输出结果是( C ) A.147 B.159 C.357 D.369

二、填空题

1、 设char string[] =″This_is_a_book!″;则数组的长度应是16

2、设int a[2][3] = {{2},{3}};则数组元素 a[1][0] 的值为3。

3、在C语言中,一个二维数组可以看成若干个 一维 数组。

三、程序分析题

1、 # define N 7

main()

{int i,j,temp,a[N]={1,2,3,4,5,6,7};

for(i = 0;i<N/2;i + + )

{j = N - 1 - i;

temp = a;a=a[j];a[j]=temp;

}

for(i = 0;i<N;i + + ) printf(″﹪5d″,a);

}

答:7 6 5 3 3 2 1

2、# include<stdio.h>

main( )

{ int i=0;

char c,s[]=″SABC″;

while(c=s)

{

switch(c)

{

case ′A′:i++;break;

case ′B′:++i;

default:putchar(c);i++;

}

putchar(′*′);

}

}

答:S**B*

四、程序填充题

1、 以下程序的功能是用选择法对数组a中的整数由小到大进行排序。

void sort(int b[],int n)

{ int i,j,t;

for(i = 0;i<n - 1;i ++ )

for(______;j<n;j ++ )

if(b_____b[j])

{t = b;_____________;b[j]=t;}

}

main()

{ int a[]={5,8,6,2,7,4,1,3};

 int i;

sort(a,8);

for(i = 0;i<8;i ++ )

printf(″﹪5d″,a);

printf(″\ n″);

}

答:(1)j=I+1 (2)> (3)b[I]=b[j]

2、 先为数组a输满数据,再为x输入一个数据,在数组a中找出第一个与x相等的元素并将其下标输出,若不存在这样的元素,则输出“Not

found!”标志。

main()

{int i,x,a[10];

for(i = 0;i<10;i ++ )scanf(″﹪d″,___________);

scanf(″﹪d″,&x);printf(″﹪d″,x);

for(i = 0;i<10;i ++) if(_________________)break;

if (i _________10)printf(″ position:﹪d \ n″,i);

else printf(″ Not found! \ n″,x);

}

答: (1)&&或者a+I (2)x= =a (3)<

五、程序设计题

1、 输入一字符串,检查是否回文 (回文是指正反序相同,如,LeveL),若是则输出“Yes”,否则输出“No”。

答:Hinclude “stringh”

main({int I,n;static char str[80];

gets(str);n=strlen(str);

for(I=0;I<n12;i++)

if (str!=str[n-1-i]

{printf(“No!/n”);break;}

if(I= =n/2) printf (“Yes!/n”);

}

2、将100个整数输入数组后按每行10个数输出。

答:main( )

{int a[100],I;

for(i=0;i<=99;i++);

scanf(“% d”,&a);

for(i=0;i<=99;i++);

{if (i%10= =0)printf(“\n”);

print(“%&d”,a;)

}

3、生成Fibonacci数列的前20项并输出,其中

fi=

答: main ( )

{int f[20],i;

f[0]=1;f[1]=1;

for (I=2;i<=19;i++)

f=f[i-1]+ f[i-2];

for(i=0;i<=19; i++)

{if(i%4= =0)printf(“\n”);

print(“%&d”,f);

}

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

自考论坛导航|湖北自考网论坛   

GMT+8, 2024-6-16 13:20 , Processed in 0.027039 second(s), 10 queries .

Powered by 湖北自考网论坛 X2

© 2001-2017 湖北自考论坛

回顶部