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的花括号中填入你编写的若干语句。