您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 计算机语言(C)第3阶段练习题
1江南大学现代远程教育第三阶段练习题考试科目:《计算机语言(C)》第10章至第13章(总分100分)学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一、选择题(每题2分,共30分)1.若已定义a为int型变量,则对指针p的说明和初始化正确的是()。A.int*p=a;B.intp=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=*++PA.1)Y=4;2)Y=4;3)Y=FE05;4)Y=7B.1)Y=7;2)Y=7;3)Y=FE02;4)Y=4C.1)Y=6;2)Y=6;3)Y=FE03;4)Y=5D.1)Y=5;2)Y=5;3)Y=FE04;4)Y=63.下列程序段的执行结果是()。staticinta[]={5,3,7,2,1,5,4,10};ints=0,k;for(k=0;k8;k+=2)s+=*(a+k);printf(%d,s);A.12B.18C.15D.174.关于指针概念不正确的说法是()。A.一个指针变量只能指向同一个类型的变量B.一个变量的地址称为该变量的指针C.只有同一类型变量的地址才能放到指向该类型变量的指针变量之中D.指针变量可以由整数赋值,不能用浮点数赋值5.若有说明int(*p)[3];则以下()是正确的叙述。A.p是一个指针数组B.(*p)[3]与*p[3]等价2C.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.设有说明:intI,*p=&I,要实现I的内容加10,则下面语句()是错的。A.*p=*&I+10;B.i=*p+10;C.*p=*p+10;D.*p=&I+10;9.说明语句enummoney{Fen,Jiao,Yuan=100,Tenyuan};每个枚举量所对应的实际值为:()。A.0,1,100,101B.1,2,100,101C.“Fen或1,Jiao或2,Yuan或100,Tenyuan或101.D.“Fen,Jiao,Yuan,Tenyuan.10.设有说明:struct{charname[15],sex;intage;floatscore;}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.释放指定文件所占据的内存空间和文件指针;3D.将指定文件封闭在某一内存区域。14.下列有关C语言文件的说法正确的是()。A.C语言文件是由记录组成B.C语言文件被看作是一个字符(字节)的序列,称为流式文件C.C语言有专门的文件操作命令D.以上说法都不正确15.语句()能正确完成赋字符串的功能。A.chars[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程序中,数据可以用和两种代码形式存放。3.结构体变量所占的内存长度为。4.设有以下说明与语句:staticinta[3][2]={1,2,3,4,5,6};int(*p)[2];...p=a;则*(*(a+2)+1)的值为,*(*(p+1)+1)的值为。5.下面程序用变量count统计文件letter.dat中字符的个数。#include”stdio.h”main(){FILE*fp;longcount=0;if((fp=)==NULL){printf(“cannotopenthisfile\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返回04s1s2返回负值s1s2返回正值[程序]scmp(char*s1,char*s2){while(*s1)if()return();else{s1++;s2++;}return();}7.下面程序的运行结果是。#include”string.h”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.下面程序的运行结果是。#includestdio.hmain(){char*str=ABCabcd;bubble(str,5);printf(\n%s,str);}bubble(char*str,intcount){inti,j=count;chartmp;while(j--1)for(i=0;ij;i++)if(str[i]str[i+1]){tmp=str[i];str[i]=str[i+1];str[i+1]=tmp;}5}三、编程题(共25分)1.编写一个函数fun(char*s,char*t),其功能是:将S所指字符串中ASCII值为奇数的字符删除,s中剩余的字符形成一个新串放在t所指的数组中。(10分)2.在本地磁盘上建立文件data1.dat,随机写入10个大写字母和10个小写字母,然后将其中的大写字母转换成小写字母,小写字母转换成大写字母后仍保存在该文件中。(15分)附:参考答案:一、选择题(每题2分,共30分)1D2D3D4C5D6C7B8D9A10D11B12D13C14D15C二、填空题(每空3分,共45分)1.顺序随机2.二进制ASCII3.所有成员占用内存的总和4.645.fopen(“letter.dat”,“r”)fscanf(fp,”%c”,&c)或c=fgetc(fp)count++6.*s1-*s2*s1-*s207.Afgd8.baCBAcd三、编程题(共25分)1.#includestdio.h#includestring.hfun(char*s,char*t){inti,j=0;for(i=0;istrlen(s);i++)if((s[i]%2==0))t[j++]=s[i];t[j]='\0';}6main(){charstr[50],tt[30];scanf(%s,str);fun(str,tt);printf(%s,tt);}2.#includestdio.h#includestring.h#includestdlib.hvoidwritefile(charfname[]){FILE*fp;inti;charch;if((fp=fopen(fname,w))==NULL){printf(errorinwrite!\n);exit(0);}randomize();printf(Theinitfileis:);for(i=0;i10;i++){ch=65+random(26);fputc(ch,fp);putchar(ch);}for(i=0;i10;i++){ch=97+random(26);fputc(ch,fp);putchar(ch);}fclose(fp);putchar('\n');}voidchange(charfname[]){FILE*fp1,*fp2;charch;if((fp1=fopen(fname,r))==NULL){printf(errorinread!\n);exit(0);}7if((fp2=fopen(d:\\temp.txt,w))==NULL){printf(errorintempwrite!\n);exit(0);}while((ch=fgetc(fp1))!=EOF){if(ch='A'&&ch='Z')ch=ch+32;elseif(ch='a'&&ch='z')ch=ch-32;fputc(ch,fp2);}fclose(fp1);fclose(fp2);if((fp1=fopen(fname,w))==NULL){printf(errorinwrite!\n);exit(0);}if((fp2=fopen(d:\\temp.txt,r))==NULL){printf(errorintempwrite!\n);exit(0);}printf(Theresultfileis:);while((ch=fgetc(fp2))!=EOF){fputc(ch,fp1);putchar(ch);}fclose(fp1);fclose(fp2);putchar('\n');}voidmain(){charf_name[20];clrscr();strcpy(f_name,d:\\data1.dat);writefile(f_name);printf(initsuccess!\n);change(f_name);printf(changesuccess!\n);}
本文标题:计算机语言(C)第3阶段练习题
链接地址:https://www.777doc.com/doc-4461662 .html