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