江南大学现代远程教育 第三阶段测试卷
考试科目:《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",&std.name);
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盘上的文件的内容显示在屏幕上,请填空。
#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);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论