精品文档江南大学现代远程教育第三阶段测试卷
考试科目:《C语言程序设计》第10章至第13章(总分100分)时间:90分钟
学习中心(教学点)批次:层次:
专业:学号:身份证号:
姓名:得分:
一、单项选择题(本题共20小题,每小题2分,共40分。)
1、设有定义:int a,*pA=&a;以下scanf语句中能正确为变量a读入数据的是()。
A、scanf(“%d”,pA) ;
B、scanf(“%d”,A) ;
C、scanf(“%d”,&pA) ;
D、scanf(“%d”,*pA);
2、若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是()。
A、a,point,*&a
B、&*a,&a,*point
C、*&point,*point,&a
D、&a,&*point,piont
3、有以下程序
main( )
{ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
printf(“%d\n”,strlen(p[4]));
}
执行后输出结果是()。
A、2
B、3
C、4
D、5
4、C语言结构体类型变量在程序执行期间()。
A、所有成员一直驻留在内存中
B、只有一个成员驻留在内存中
C、部分成员驻留在内存中
D、没有成员驻留在内存中
5、以下对C语言中共用体类型数据的叙述()的叙述是正确的。。
A、可以对共有变量名直接赋值
B、一个共用体变量中可以同时存放其所有成员
C、一个共有体变量中不能同时存放其所有成员
D、共用体类型定义中不能出现结构体类型的成员
6、有以下程序
main()
{ char str[]="xyz",*ps=str;
while(*ps)ps++;
精品文档for(ps--;ps-str>=0;ps--) puts(ps);
}
执行后的输出结果是()。
A、yz
B、z
C、z
D、x
xyz yz yz xy
xyz xyz
7、设有如下定义
struct ss
{ char name[10];
int age;
char sex;
}std[3],*p=std;
下面各输入语句中错误的是()。
A、 scanf("%d",&(*p).age);
B、scanf("%s",&https://www.wendangku.net/doc/b512215592.html,);
C、 scanf("%c",&std[0].sex)
D、scanf("%c",&(p->sex));
8、以下叙述中不正确的是()。
A、C语言中的文本文件以ASCⅡ码形式存储数据
B、C语言中对二进制文件的访问速度比文本文件快
C、C语言中,随机读写方式不适用于文本文件
D、C语言中,顺序读写方式不适用于二进制文件
9、如果希望向文本文件末尾添加数据,则应以()方式打开文件。
A、"r"
B、"w"
C、"a"
D、"ab"
10.设一整型(int)变量占用2个字节则下述共同体变量x所占用内存字节数为()。
union exp
{ int i;
float j;
double k;
}x;
A、14个
B、7个
C、8个
D、随机而定
11、对于基类型相同的指针变量,不能进行()运算。
A、+
B、-
C、=
D、==
12、阅读下面程序,并给出结果()。
main()
{
union EXAMPLE { struct{
int x; int y; }in;
int a,b;
}e;
e.a=1;e.b=2;
精品文档
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d%d",e.in.x,e.in.y);
}
A、3 8
B、4 8
C、4 7
D、2 5
13、以下函数的功能是()。
fun(char *a,char *b)
{ while((*a!='\0')&&(*b!='\0')&&(*a= =*b))
{ a++;b++;}
return(*a-*b);}
A、计算a和b所指字符串的长度之差
B、将b所指字符串连接到a所指字符串中
C、将b所指字符串连接到a所指字符串后面
D、比较a和b所指字符串的大小
14、运行下列程序后的输出结果是()。
main()
{ char s[ ]="Yes\n/No",*ps=s;
puts(ps+4);
*(ps+4)=0;
puts(s);}
A、 n/No
B、/No
C、 n/NO
D、Yes
Yes\ Yes /No Yes
15、下面正确调用形式是()。
A、fscanf(文件指针,格式字符串,输出表列);
B、fscanf(格式字符串,文件指针,输出表列);
C、fscanf(格式字符串,输出表列,文件指针);
D、fscanf(文件指针,格式字符串,输入表列);
16、若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()。
A、EOF
B、0
C、非零值
D、NULL
17、若有定义:int a[3][4];则对该数组的i行j列元素值的正确引用为()。
A、*(*(a+i)+j)
B、(a+i)[j]
C、*(a+i+j)
D、*(a+i)+j
18、.对于基类型相同的指针变量,不能进行()运算。
A、+
B、-
C、=
D、==
19、函数
AAA(s,t)
char *s,*t;
{ while(*t++);
t--;
while(*t++=*s++);
}
的功能是()。
A、求串的长度
B、比较两个串的大小
C、将串s复制到串t中
D、将串s连接到串t中
20、写出下列语句执行结果()。
int a,b,c,d=4,m=6,n=8;
int *p1=&d,*p2=&m,*p3;
a=p1==&d;
b=3*(-*p1)/(*p2)+7;
c=*(p3=&n)=*p1*(*p2);
printf("%d,%d,%d",a,b,c);
A、1,5,24
B、4,5,23
C、1,2,22
D、5,5,14
二、填空题(本题共6小题,每空2分,共30分)
1、若有定义语句“static char str[4][20] = {“thank” , “you” , “very” , “much!” };”则 str数组中存储‘\0’的数组元素有个。
2、设有如下说明语句:enum week{sun,mon,tue=100,wed,thu,fri,sat};则元素sun对应的实际值为、wed对应的实际值为。
3、下面的程序将D盘上的文件abc.txt的内容显示在屏幕上,请填空。
#include "stdio.h"
main()
{ FILE *fp; char c;
if(( )==NULL)
{ printf("cannot open file!\n");
exit(0);
}
while(( )!=EOF) putchar(c);
;}
4、运行下列程序后,第一行输出内容,第二行输出内容。
main()
{ char a[2][5]={"fghi", "name" };
char *p, *s; int j;
p=a[0]; s=a[1];
while(*p) p++;
while(*s) *p++=*s++;
for(j=0;j<2;j++) printf("%s\n",a[j]);}
5、输入一个不包含空格的字符串,判断输入的字符串是否为回文,回文是相对中心左右对称的字符串,如:“abcba”和“abddba”是回文,而字符串“abcAa”不是回文。
#include”stdio.h”
int f(char *p)
{
char *p1, *p2; p1=p2=p;
while( *p2++);
;
while( ){
if( ) return(0);
p1++; p2 --; }
return 1;}
main()
{
char s[200];
printf(“输入一个字符串:”);
scanf(“%s”,s );
if( )printf(“字符串:%s是回文!\n”,s);
else printf(“字符串:%s不是回文!\n”,s);
}
6、运行程序后输出的第一行内容是、第二行内容是、最后一行内容是。
fun (int n,int *s)
{ int f1,f2;
if ( n= =1||n= =2) *s = 1;
else
{ fun(n-1,&f1);fun(n-2,&f2);
*s =2*f1+f2+1;printf(“ \n%d,%d “,f1,f2);} }
main( )
{ int x;
fun (4,&x);printf(“\nx=%d ”,x);}
三、编程题(本题共2小题,每小题15分,共30分)
1、某班有10个学生,每个学生包姓名和3门课的成绩,编写一个程序,从键盘上输入每个学生的姓名和各门课的成绩,同时输出平均成绩在85分以上的学生的姓名、全部成绩和平均成绩
2、(设有一数列,包含10个数,要求:a.编写函数,采用冒泡排序法对之按照升序进行排列;
b.编写函数,能够将从指定位置n开始的m个数按逆序重新排列并输出新的完整数列。(例如:
原数列为2,4,6,8,10,12,14,16,18,20,若要求把从第2个数开始的5个数按逆序重新排列,则得到新数列为2,12,10,8,6,4,14,16,18,20。)
参考答案:
一、单项选择题:(本题共20小题,每小题2分,共40分)
1、A
2、D
3、A
4、A
5、C
6、C
7、B
8、D
9、C 10、C
11、A 12、B 13、D 14、B 15、D
16、C 17、A 18、A 19、D 20、A
二、填空题(本题共6小题,每空2分,共30分)
1、 63
2、0 、101
3、 fp=fopen(“d:\\abc.txt”,“r”)、c=fgetc(fp)、 fclose(fp)
4、 fghinamee、amee
5、 p2=p2-2、 *p1!=‘\0’、 *p1 !=*p2 、f(s)
6、 1,1、4,1、x=10
三、编程题:(本题共2小题,每小题15分,共30分)
1、
#include "stdio.h"
#include "string.h"
#define N 10
struct student
{ char name[10];
float score[3];};
main()
{ struct student stu[N];
int I,j;