1.

若有以下说明和语句

int c[4][5],(*p)[5];

p=C;

能够正确引用c数组元素的是

A、

p+ 1

B、*(p+3)

C、*(p+1)+3

D、

*(p[0]+2) .


2.

有以下程序.

int a=2;

int f(int *a)

{return (*a)++;}

main( )

{ int s=0;

{ int a=5;

S+ =f(&a);

S+ =f(&a);

printf("%d\n" ,S);

执行后输出结果是

A、

10

B、9

C、7

D、8


3.

有以下程序.

main()

{ int x[8]={8,7,6,5,0,0}, *s;

s=x+3;

printf("%d\n" ,s[2]);

}

执行后输出结果是

A、随机值

B、0

C、5

D、6


4.


下列程序的运行结果是

void fun (int *a,int *b)

{ int *k;

k=a;a= b;b=k;

main()

{ int a=3,b=6,*x=&a,*y= &b;

fun(x,y);

printf("%d %d" ,a,b);

A、63

B、36

C、 编译出错

D、00



5.

若定义: int a=511,*b=&a;,则printf("%d\n",*b);的输出结果是

A、无确定值

B、a的地址

C、512

D、

511


6.

以下选项中,能定义s为合法的结构体变量的是

A、typedef struct abc

{

double

a;

char b[10];

B、struct

{ double a;

char b[10];

}S;

C、struct

ABC

{ double

a;

char b[10];

}

ABC

S;

D、typedef ABC

{double a;

char b[10];

ABC S;


7.

下面各语句行中,能正确进行赋字符串操作的语句行是

A、char st[4][5]={" ABCDE"};

B、char s[5]={'A','B','C;'D','E'};

C、char *s; s="ABCDE";

D、char *s; scanf( "%S",S);


8.

以下数组定义中错误的是_


A、int x[][3]={0};

B、int x[2][3]={{1,2},{3,4},{5,6}};

C、

int x[][3]={{1,2,3},{4,5,6}};

D、

int x[2][3]={1,2,3,4,5,6};


9.......

假定已建立以下链表结构,且指针p和q已指向如图所示的结点:

date

next

head

a

+b

C

↑P

↑9

则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是


A、(*p).next=(*q).next; free(p);

B、p=q-> next; free(q);

C、p=q; free(q);

D、p-> next=q-> next;free(q);


10.

下列关于C语言文件的叙述中正确的是

A、文件由一系列数据依次排列组成,只能构成二进制文件

B、文件由结构序列组成,可以构成二进制文件或文本文件

C、文件由数据序列组成,可以构成二进制文件或文本文件

D、文件由字符序列组成,其类型只能是文本文件


11.

针对简单程序设计,以下叙述的实施步骤正确的是

A、确定算法和数据结构、编码、调试、整理文档

B、编码、确定算法和数据结构、调试、整理文档

C、

整理文档、确定算法和数据结构、编码、调试

D、确定算法和数据结构、调试、编码、整理文档


12.

程序中对fun函数有如下说明

void *fun();

此说明的含义是

A、fun函数无返回值

B、fun 函数的返回值可以是任意的数据类型

C、fun函数的返回值是无值型的指针类型

D、

指针fun指向一个函数,该函数无返回值


13.


有以下程序

#include <stdio.h>

main()

{FILE *fp1;

fp1 =fopen("f1.txt","w");

fprintf(fp1," abc");

fclose(fp1);

若文本文件f1.txt中原有内容为: good,则运行以下程序后文件f1.txt中的内容为_

A、goodabc

B、abcd

C、abc

D、abcgood



14.

若已建立下面的链表结构,指针p,s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是____。

data next

head

E

斗FNUL+>

p↑

s

G

A、s->next=NULL; p=p- >next; p->next=s;

B、p=p->next; s- >next=p->next; p- >next=s;

C、p=p->next; s- ->next=p; p- >next=s;

D、p=(*p). next; (*s). next= (*p). next; (*p). next=s;



15..............

有以下结构体说明、变量定义和赋值语句

struct STD

char name[10];

int age;

char sex;

}s[5],*ps;

ps= &s[0];

则以下scanf函数调用语句中错误弓引|用结构体变量成员的是

_。

A、scanf("%s",s[0].name);

B、scanf("%d",&s[0].age);

C、scanf("%c" ,&(ps-> sex);

D、scanf(" %d",ps-> age);


16.

若有以下的定义: int t[3][2];能正确表示t数组元素地址的表达式是_

A、&t[3][2]

B、t[3]

C、t[1]

D、*t[2]



17.


若fp是指向某文件的指针,且己读到文件末尾,则库函数feof(fp)的返回值是___。

A、Eof

B、-1

C、非零值

D、NULL


18.

下列叙述中正确的是__。

A、每个C程序文件中都必须有一个main()函数

B、在C程序中main()函数的位置是固定的

C、C程序中所有函数之间都可以相互调用,与函数所在位置无关

D、在C程序的函数中不能定义另一个函数


19.

有以下程序

#include < stdio.h>

int fun()

{ static int x=1;

x*=2;

return X;

main()

{ int i,s=1;

for(i=1;i<=3;i+ +) s*=fun();

printf("%d\n' ,;S);

程序运行后的输出结果是

_o

A、0

B、10

C、30

D、64


20.

以下程序的输出结果是

main( )

{ int i;

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

{ if(i%2){printf(" #" );continue;}

printf(" * ");

printf("\n");

}

A、#*#*#

B、 #####

C、

★大★★★

D、 *#*#*


判断


1.共用体变量所占的内存长度等于最长的成员的长度。

2.rewind (fp) ;可使fp所指文件的位置返回到文件的开头。

3.在定义结构体时,成员的类型必须指定,既可以是简单的数据类型,还可以是构造的数据类型。

4.

结构体数组中每个数组元素都是类型相同的结构体,可以对每个数组元素整体进行输入和输出的操作。

5.链表的插入和删除和数组元素一样需要移动插入或删除点后的元素。

6.若指针变量指向一维数组的第一个元素,将指针变量加整数3,即指针后移3个元素。

7.在C语言中,可以把一个结构体变量作为- -个整体赋值给另- -个具有相同类型的结构体变量。

8.文件指针用于指向文件,文件只有被打开后才有对应的文件指针。

9.如果函数定义出现在函数调用之前,可以不必加函数原型声明。

10.文件的读函数是从输入文件中读取信息,并存放在内存中。


程序填空


1.

给定程序中,函数fun的功能是:找出100 ~ 999之间(含100和999) 所有整数中各位上数字之和为x (x为- -正整数) 的整数,然后输出;符合条件的整数个数

作为函数值返回。

例如,当x值为5时,100 ~ 999之间各位上数字之和为5的整数有: 104、113、 122、131、 140、 203、 212、 221、 230、 302、 311、 320、 401、 410、

500。共有15个。当x值为27时,各位数字之和为27的整数是: 999。 只有1个。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!



2.

程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门]课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到

大)排序。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!



程序修改

1.

给定程序MODI1.C中,读入一个整数k(2≤k<10000), 打印它的所有质因子(即所有为素数的因子)。例如,若输入整数: 2310, 则应输出:2、3、5、7、11.

请改正程序中的语法错误,使程序能得出正确的结果。

注意:不要改动mail函数,不得增行或删行,也不得更改程序的结构!

2........


给定程序MODI1.C中函数fun的功能是:应用递归算法求形参a的平方根。求平方根的迭代公式如下:

a

x1=-(x0+-)

2

x0

例如,a为2时,平方根值为: 1.414214。

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。



程序设计

1.

程序定义了NxN的二维数组,并在主函数中自动赋值。请编写函数fun( int a[][N]),函数的功能是:使数组左下三角元素中的值全部置成0。例如: a数组中

的值为

|197|

|09.7|

a=|23 8 |则返回主程序后a数组中的值应为|0 0 8 |

|45 6|

000|

注意:部分源程序存在文件PROG1.C文件中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。



2.

请编一个函数double Pdt(int n,double pp[),它的功能是: 求出数组pp中n个数的整数部分的和,并返回此值。

例如:若输入4和11.91、 23.87、 35.79、 40.83, 则输出109.0, 整数部分的值应小于10的1 6次方。

注意:此程序存贮在PROG1.C中。

请勿改动主程序main、函数WriteData和函数compute中的任何内容,仅在函数Pdt的花括号中填入你编写的若干语句。




3.

函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成-个新串放在t所指的数组中。

例如,若s所指字符串中的内容为: "ABCDEFG12345", 其中字符A的ASCI码值为奇数、... 字符1的ASCII码值也为奇数、..都应当删除,其它依此类推。最

后t所指的数组中的内容应是: "BDF24"。

注意:部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。



4.

函数fun的功能是:将n个人员的考试成绩进行分段统计,考试成绩放在a数组中,各分数段的人数存到b数组中:成绩为60到69的人数存到b[0]中,成绩为70

到79的人数存到b[1],成绩为80到89的人数存到b[2],成绩为90到99的人数存到b[3], 成绩为100的人数存到b[4],成绩为60分以下的人数存到b[5]中。

例如,当a数组中的数据是:

93、 85、 77、 68、 59、 43、 94、 75、 98。

调用该函数后,b数组中存放的数据应是:

1、2、1、3、0、2。

注意:部分源程序存在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


5....................

编写函数fun,它的功能是计算下列级数和,和值由函数值返回。

x

S=1+x+

+

+ ...... +

2! 3!

n2!

例如,当n=10, x= 0.3时,函数值为1.349859。

注意:部分源程序在文件PROG1.C文件中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。