C语言试题六套 下载本文

A.ABCD BCD CD D B.A B C D C.D C B A

D.ABCD ABC AB A

28.对于如下的结构体定义:

struct date { int year,month,day;}; struct worklist { char name[20]; char sex;

struct date birthday;

}person; 若对变量person的出生年份进行赋值,__C___是正确的赋值语句。

A.year=1976; B.birthday.year=1976; C.person.birthday.year=1976; D.person.year=1976;

29.以下程序的输出结果是__A_。 main( )

{ int aa[3][3]={{2},{4},{6}},i,*p=&aa[0][0]; for(i=0;i<2;i++)

{ if(i==0) aa[i][i+1]=*p+1; else ++p;

printf(“%d”,*p); }

printf(“\\n”); }

A.23 B.26 C.33 D.36

30.根据以下定义,能输出字母?M?的语句是___D__。 struct person { char name[9];int age;};

struct person class[4]={“John”,17,“Paul”,19,“Mary”,18,“Adam”,16}; A. printf(“%c\\n”,class[3].name); B. printf(“%c\\n”,class[3].name[1]); C. printf(“%c\\n”,class[2].name[1]); D. printf(“%c\\n”,class[2].name[0]);

5.若输入“I am a boy!” ,写出程序的执行结果。

char connect(char *string1 ,char *string2 ,char *string) { int i,j;

for(i=0;string1[i]!=?\\0?;i++) string[i]=string1[i]; for(j=0;string2[j]!=?\\0?;j++) string[i+j]=string2[j]; string[i+j]=?\\0?; }

main( )

{ char s1[100],s2[100],s[100];

printf(“输入string1:\\n”); scanf(“%s”,s1); printf(“输入string2:\\n”); scanf(“%s”,s2); connect(s1,s2,s); printf(“%s\\n”,s); } Iam

三、编写程序题(3个小题,共20分):

1.利用scanf函数输入三个整数,按从小到大的顺序输出。(5分) 2.求n!,即计算1*2*3*…*n的值。(5分)

3.输入10个学生的成绩,求平均成绩,并将低于平均成绩的分数输出。(10分) 要求:(1)使用数组存放成绩,数组名为score。 (2)编写三个函数,函数input:输入学生成绩, 函数average:求平均成绩,

函数result:将低于平均成绩的分数输出。

6、以下程序段的输出结果是___D__。 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); A.9 B.1 C.11 D.6

11、对于如下的结构体定义: struct date { int year;int month;int day;}; struct worklist { char name[20]; char sex;

struct date birthday; }person;

若对变量person的出生年份进行赋值,__C___是正确的赋值语句。 A.year=1976;B.birthday.year=1976;C.person.birthday.year=1976; D.person.year=1976; 12、如果int *p,a[3]={1,2,3};执行p=a;那么运行printf(“%d”,*p++);输出结果是___A__。 A.1 B.2 C.3 D.不确定

13、 算法是程序的灵魂 ,算法是解决“做什么”和“怎么做”的问题;N-S流程图表示算法比传统流程图紧凑易画,尤其是它废除了流程线;传统的流程图表示算法如:顺序、选择、循环三种结构,一般有一个入口,多个出口。

四、 程序设计(2*15=30分)

1、下列这个程序是用函数的方式完成编写一个Fibonacci数列, 请补充完成函数number_fibonacci( )的代码。

这个数列有如下特点:第1,2两个数为1,1。从第3个数开始,该数是其前面两个数之和。即:

F1=1 (n=1) F2=1 (n=2)

Fn=Fn-1+Fn-2 (n>=3) 运行结果为: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 . . . . . . . .

程序如下 main() { int n;

scanf(\number_fibonacci(n); printf(\}

void number_fibonacci(int n) { }

2、利用所学知识,设计下列程序

打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为 153=1*1*1+5*5*5+3*3*3