百度文库
江南大学现代远程教育 第三阶段测试卷
考试科目:《计算机语言(C)》第10章至第13章(总分100分) 时间:90分钟
学习中心(教学点) 批次: 层次: 专业: 学号: 身份证号: 姓名: 得分:
一、选择题(每题2分,共30分)
1. 若已定义a为int型变量,则对指针p的说明和初始化正确的是( D )。 *p=a; p=a; *p=*a; *p=&a;
2. 设P是指向A的指针,Y为整型量,A=5,A的地址为FE03;B=6,B的地址为FE04;下列语句分别执行的结果是( D )。
1)Y=*&A; 2)Y=*P++; 3)Y=&++A; 4)Y=*++P Y=4; 2)Y=4; 3)Y=FE05; 4)Y=7 Y=7; 2)Y=7; 3)Y=FE02; 4)Y=4 Y=6; 2)Y=6; 3)Y=FE03; 4)Y=5 Y=5; 2)Y=5; 3)Y=FE04; 4)Y=6 3.下列程序段的执行结果是( D )。 static int a[]={5,3,7,2,1,5,4,10}; int s=0,k; for(k=0;k<8;k+=2) s+=*(a+k); printf(\
.18 C 4. 关于指针概念不正确的说法是( C )。 A.一个指针变量只能指向同一个类型的变量 B.一个变量的地址称为该变量的指针
C.只有同一类型变量的地址才能放到指向该类型变量的指针变量之中 D.指针变量可以由整数赋值,不能用浮点数赋值
5. 若有说明int (*p)[3];则以下( D )是正确的叙述。 是一个指针数组 1
百度文库
B.(*p)[3]与*p[3]等价
是一个指针,它可以指向一个一维数组中任一元素 是一个指针,它只能指向一个包含3个int类型的一维数组 6.下面对结构数据类型的叙述中,( C )是错的。
A.结构变量可以在说明结构类型后定义,也可在说明结构时定义 B.结构可由若干个成员组成,各成员的数据类型可以不同 C.定义一个结构类型后,编译程序要为结构的各成员分配存储空间 D.结构变量的各成员可通过结构变量名和指向结构变量的指针引用 7. 若px为指针变量名,y为变量名,则y=*px++;等价于( B )。 =*px;px++; =(*px)++; =px;px++; =*(px++);
8. 设有说明:int I, *p=&I,要实现I的内容加10,则下面语句( D )是错的。 A.*p=*&I+10;
=*p+10;
C.*p=*p+10;
D.*p=&I+10;
9.说明语句enum money{Fen,Jiao,Yuan=100,Tenyuan};每个枚举量所对应的实际值为:( A )。 ,1,100,101 ,2,100,101
C.“Fen\或1,\或2,\或100,\或101. D.“Fen\10. 设有说明:
struct{
char name[15],sex; int age;float score; }stu,*p=&stu;
以下不能正确输入结构体成员值的是( D )。
A. scanf(”%c”,&p->sex); B. scanf(”%s”,; C. scanf(”%d”,&; D. scanf(”% f”,p->score);
11.若要用fopen函数打开一个新的二进制文件,该文件要即能读也能写,则文件打开的方式应是( B )。
A.〝ab+〞 B. 〝wb+〞 C.〝rb+〞 D.〝ab〞 函数的一般调用形式是( D )。
A. fwrite(buffer,count,size,fp) B. fwrite(fp,size,count,buffer) C. fwrite(fp,count,size,buffer) D. fwrite(buffer,size,count,fp) 13. 关闭文件函数fclose(fp)的作用是( C )。 A.不再为fp指向的文件分配内存空间; 2
百度文库
B.将fp指向的文件存入磁盘;
C.释放指定文件所占据的内存空间和文件指针; D.将指定文件封闭在某一内存区域。
14. 下列有关C语言文件的说法正确的是( D )。 语言文件是由记录组成
语言文件被看作是一个字符(字节)的序列,称为流式文件 语言有专门的文件操作命令 D.以上说法都不正确
15. 语句( )能正确完成赋字符串的功能。
A. char s[4];s[0]=“string”; B. char *s;get(s); C. char *s[]=“string”; D. char *s;strcpy(s,“string”);
二、填空题(每空3分,共45分)
1. C程序中,文件可以用 顺利 方式存取,也可以用 随机 方式存取。 2. C程序中,数据可以用 二进制 和 ACSII 两种代码形式存放。 3. 结构体变量所占的内存长度为 所有成员占有内存的总和 。 4. 设有以下说明与语句:
static int a[3][2]={1,2,3,4,5,6}; int (*p)[2]; . . . p=a;
则*(*(a+2)+1)的值为 6 ,*(*(p+1)+1)的值为 4 。 5. 下面程序用变量count统计文件中字符的个数。 #include”” main()
{ FILE *fp; long count=0; if((fp= foren(“”,”r”) )==NULL)
{ printf(“can not open this file\\n”); exit(0);} while(!feof(fp))
{ fscanf(fp,”%c”,&c)或c=fgetc(fp) ; if((c>=’a’ && c<=’z’) || (c>=’A’ && c<=’Z’))
count++ ; } 3
百度文库
printf(“count=%ld\\n”,count); fclose(fp);}
6. 下面的函数用于比较两个给出的C字符串。按比较结果,函数将返回下列函数值:
若: s1=s2 返回0
s1
[程序]
scmp(char *s1,char *s2) {while(*s1)
if( *s1-*s2 ) return( *s1-*s2 ); else{ s1++;s2++; }
return( 0 ); }
7. 下面程序的运行结果是 Afgd 。
#include”” main()
{ char *p1, *p2,str[50]=”ABCDEFG”; p1=”abcd”; p2=”efgh”
strcpy(str+1,p2+1); strcpy(str+3,p1+3); printf(“%s”,str); }
8. 下面程序的运行结果是 baCBAcd 。 #include<> main()
{ char *str=\ bubble(str,5); printf(\}
bubble(char *str,int count) { int i,j=count; char tmp; 4
百度文库
while(j-->1) for(i=0;i { tmp=str[i]; str[i]=str[i+1]; str[i+1]=tmp; } } 三、编程题(共25分) 1. 编写一个函数fun(char *s,char *t),其功能是:将S所指字符串中ASCII值为奇数的字符删除,s中剩余的字符形成一个新串放在t所指的数组中。(10分) 2. 在本地磁盘上建立文件,随机写入10个大写字母和10个小写字母,然后将其中的 大写字母转换成小写字母,小写字母转换成大写字母后仍保存在该文件中。 (15分) 1. #include < > #include <> fun (char *s, char*t) { int i,j=0; for(i=0;i #include”” #include”” #include”” Void wnitefile (char fname{}) { FILE *fp; Int t; Char ch; If((fp=fopen(fname,”W”))=NULL) { printf((“error in winte︳\\ n”); 5
相关推荐: