1.char *s=“C Language”;表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。 (1分)
T
2.C 语言是一种具有某些低级语言特征的高级语言。 (1分)
T
3.文件指针用于指向文件,文件只有被打开后才有对应的文件指针。 (1分)
T
4.在C语言中,逗号既可以作为运算符,也可以作为分隔符。 (1分)
T
5.变量被定义后 , 它的作用域和寿命就被确定了 , 并且不可改变。 (1分)
T
6.字符串在内存中的起始地址称为字符串的指针,可以定义一个字符指针变量指向一个字符串。 (1分)
T
7.设变量定义为 int a[2]={1,3}, p=&a[0]+1;,则p的值是( )。(2分)
A.2
B.3
C.4
D.&a[0]+1
B
&a[0]+1是地址的增加
8.以下结构类型可用来构造链表的是()。 (2分)
A.struct aa{ int a;int * b;};
B.struct bb{ int a;bb * b;};
C.struct cc{ int * a;cc b;};
D.struct dd{ int * a;aa b;};
B
9.若有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方式是( )。 (2分)
p=max;
*p=max;
p=max(a,b);
*p=max(a,b);
A
在本题中,将函数的入口地址赋给指针后就可以用该指针调用函数了。
10.若有定义char str[]={“Python”, “SQL”, “JAVA”, “PHP”, “C++”}; 则表达式str[1] > *str[3]比较的是:(2分)
字符P和字符J
字符串SQL和字符串PHP
字符串Python和字符串JAVA
字符S和字符P
D
11.若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。 (1分)
数组首地址
数组的第一个元素值
数组中全部元素的值
数组元素的个数
A
12.以下程序的输出结果是( )。 (2分)
int main(void)
{ int x[]={1,3,5,7,2,4,6,0}, i, j, k;
for(i=0; i<3; i++)
for (j=2; j>=i; j--)
if(x[j+1]>x[j]) {
k=x[j]; x[j]=x[j+1]; x[j+1]=k;
}
for(i=0; i<3; i++)
for(j=4; j<7-i; j++)
if(x[j+1]>x[j]){
k=x[j]; x[j]=x[j+1]; x[j+1]=k;
}
for (i=0; i<3; i++)
for(j=4; j<7-i; j++)
if(x[j]>x[j+1]){
k=x[j];x[j]=x[j+1];x[j+1]=k;
}
for (i=0; i<8; i++)
printf("%d",x[i]);
printf("\n");
return 0;
}
75310246
01234567
76310462
13570246
A
13.设变量已正确定义,以下()是合法的C语句。 (1分)
A.if ( n <= 10 );
B. switch ( k ) {
case 1: printf("one"); break;
case 2: printf("two"); break;
case 1: printf("one"); break;
default: printf("zero"); break;
}
C. switch ( k%2 ) {
default: printf("zero"); break;
case 1: printf("one");
case 1+1: printf("two");
}
D.n = 10;
switch ( k ) {
case n%3: printf("one");
case n%4: printf("two");
default: printf("zero");
}
A
14.关于C语言中的函数,下列说法正确的是 (2分)
A.函数应该以它们调用的顺序来定义。
B.return 语句可以出现在函数的任何地方。
C.函数定义可以在主函数前面也可以在主函数后面。
D.函数总是返回一个整型数据。
BC
A.不需要,只要在调用前声明过就好。
D.返回的数据与定义的类型有关
15.如果变量定义如下,则正确的语句是( )。 (1分)
int k, a[10];
A.a[-1] = -1;
B.a[0] = 23;
C.k = 3; a[k - 2] = a[9] + 1;
D.for(k = 1; k <= 10; k++){
printf(“%d ”, a[k]);
}
E.for(k = 0; k < 10; k++){
scanf(“%d ”, &a[k]);
}
BCE
16.下面函数用于求出两个整数之和,并通过形参传回两整数相加之和值。请填空。
void add(int x, int y, ______(4分) z) {
___________=x+y;
}
int*|int *
z| z
17.以下程序的输出结果是______
(2分)。
void swap(int *a, int *b)
{
int *t;
t=a; a=b; b=t;
}
Int main()
{
int i=2,j=5,*p=&i,*q=&j;
swap(p,q);
printf("%d %d\n",*p,*q)
}
2 5
1.随机操作只适用于文本文件。 (1分)
F
评测结果:答案错误(0 分)
解析:随机操作文本指的是用seek函数重新定位文件指针进行读写操作,访问数组中的元素也是随机的,知道下标就可以,所以说随机操作不只是针对于文件来讲。
2.文件的读函数是从输入文件中读取信息,并存放在内存中。(1分)
T
评测结果:答案错误(0 分)
3.c语言源程序是文本文件,目标文件和可执行文件是二进制文件。 (1分)
T
评测结果:答案错误(0 分)
4.文件指针指向文件缓冲区中文件数据的存取位置。 (1分)
F
评测结果:答案错误(0 分)
5.如果二进制文件a.dat已经存在,现在要求写入全新数据,应以()方式打开。 (2分)
“w”
“wb”
“w+”
“wb+”
评测结果:答案错误(0 分)
B
首先是dat(二进制)文件,必须带b。全新文件,不能有+号,故选B
6.定义FILE *fp; 则文件指针fp 指向的是()。(2分)
A.文件在磁盘上的读写位置
B.文件在缓冲区上的读写位置
C.整个磁盘文件
D.文件类型结构体
评测结果:答案错误(0 分)
C
7.按存储介质划分,文件可以分为: (2分)
A.记录文件和流式文件
B.普通文件和设备文件
C.文本文件和二进制文件
D.程序文件和数据文件
评测结果:答案错误(0 分)
B
8.已知函数的调用形式fread(buffer, size, count, fp);其中buffer代表的是( )。 (1分)
A.一个整数变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,指向要读入数据的存放地址
D.一个存储区,存放要读的数据项
评测结果:答案错误(0 分)
C
[解析] 数据块输入/输出函数的调用形式为:fread(buffer,size,count,fp)。
fread函数参数说明:“buffer”是一个指引,对fread来说,它是读入数据的存放地址;“size”是要读写的字节数;“count”是要进行读写多少个size字节的数据项;“fp”是指文件型指针。
9.有一文本文件test.txt,其内容为"cprogram"(不包含引号),以下程序段的运行结果是()。 (2分)
FILE *fp;
char str[20];
if((fp=fopen(“test.txt”,“r”))!=NULL)
str=fgets(str,5,fp); printf("%s",str);
A.cpro
B.cprog
C.prog
D.cprogram
评测结果:答案错误(0 分)
A
调用fgets函数时,最多只能读入n-1个字符
10.只能向指定文件写入一个字符的函数是
答:fputc
11.fgets(s,n,fp);语句用来从fp所指示的文本文件中读取字符串s,该语句最多读取 __________
(1分) 个字符。
答:n-1
调用fgets函数时,最多只能读入n-1个字符
已知斐波那契数列定义:f(0) = 0; f(1) = 1; f(n) = f(n-1) + f(n-2); 那么你的任务是根据已知的n(n<30),求出f(n);
输入格式:
输出格式:
输入样例:
在这里给出一组输入。例如:
1
2
3
4
5
输出样例:
在这里给出相应的输出。例如:
1
1
2
3
5
代码
#include
int f( int n );
int main()
{
int n;
scanf("%d", &n);
printf("%d\n", f(n));
return 0;
}
int f( int n )
{
int fn;
if(n==0)fn=0;
else if(n==1)fn=1;
else if(n>=2)fn=(f(n-2)+f(n-1));
return fn;
}