首页 c语言期末模拟考试题及答案

c语言期末模拟考试题及答案

举报
开通vip

c语言期末模拟考试题及答案本卷共有3道大题: 一、单项选择题(50道小题,共50分) 1、下列计算机语言中,CPU能直接执行的是( D )。(1分) A、自然语言 B、高级语言 C、汇编语言 D、机器语言 2、算法具有5个特性,以下选项中不属于算法特性的是( B )。(1分) A、有穷性 B、简洁性 C、可行性 D、确定性 3、以下叙述中,正确的叙述是( A )。(1分) A、构成C程序的基本单位是函数 B、可以在一个函数中定义另一个函数 C、main( )函数必须放在其他函数之前 D、所有被调用的函数一定...

c语言期末模拟考试题及答案
本卷共有3道大题: 一、单项选择题(50道小题,共50分) 1、下列计算机语言中,CPU能直接执行的是( D )。(1分) A、自然语言 B、高级语言 C、汇编语言 D、机器语言 2、算法具有5个特性,以下选项中不属于算法特性的是( B )。(1分) A、有穷性 B、简洁性 C、可行性 D、确定性 3、以下叙述中,正确的叙述是( A )。(1分) A、构成C程序的基本单位是函数 B、可以在一个函数中定义另一个函数 C、main( )函数必须放在其他函数之前 D、所有被调用的函数一定要在调用之前进行定义 4、已知字母A的ASCII码为十进制的65,char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';,则printf("%d,%c\n",ch1,ch2);的输出是( A )。(1分) A、67,D B、B,C C、C,D D、不确定的值 5、c2为字符型,执行语句“c2='A'+'6'-'3';”后,c2的值为(A )。(1分) A、D B、63 C、不确定的值 D、C 6、若a为int类型,且其值为5,则执行完表达式a+=a-=a*a后,a的值是( C )。(1分) A、-5 B、20 C、-40 D、25 7、设a、b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是( D )。(1分) A、'a'&&'b' B、a<=b C、a||b+c&&b-c D、!((a B、i=100,f=765.12<回车> C、100<回车〉765.12<回车> D、x=100<回车>f=765.12<回车> 10、下列表述中,合法的C语言赋值语句是( B )。(1分) A、a=b=58 B、i++; C、a=58, b=58 D、k=int(a+b); 11、若k是int型变量,程序片段 k=-3; if(k<=0) printf("####"); else printf("&&&&"); 的输出结果是( A )。(1分) A、#### B、&&&& C、####&&&& D、有语法错误,无输出结果 12、程序main(){int x=1, y=0, a=0, b=0;switch(x){case 1: switch(y) {case 0: a++;break; case 1: b++;break; } case 2: a++; b++; break;}printf("a=%d, b=%d\n",a,b); }的输出结果是( A )。(1分) A、a=2, b=1 B、a=1, b=1 C、a=1, b=0 D、a=2, b=2 13、若有定义float w; int a, b; ,则合法的switch语句是( C )。(1分) A、switch(w) { case 1.0: printf("*\n"); case 2.0: printf("**\n"); } B、switch(a); { case 1 printf("*\n"); case 2 printf("**\n"); } C、switch(b) { case 1: printf("*\n"); default: printf("\n"); case 1+2: printf("**\n"); } D、switch(a+b); { case 1: printf("*\n"); case 2: printf("**\n"); default: printf("\n"); } 14、若有int a[4][5];,则数组a包含的元素个数是( D )。(1分) A、4 B、5 C、9 D、20 15、下列语句中,正确的定义语句是( B )。(1分) A、int A[a]; B、int A[10]; C、int A[3,4]; D、int A[][3] 16、下列描述中,能正确给字符数组str定义和赋值的是( A )。(1分) A、char str[]={"China"}; B、char str[10];str={"China"}; C、char str[10]={"abcdefghijklmn"}; D、char str[10];strcpy(str,"abcdefghijklmn"); 17、若有char c[6]={'H','e','l','l','o'};,则c[5]的值是( B )。(1分) A、'0' B、'\0' C、空格 D、不可知的 18、设有定义:char c,string[]="Welcome zhanghong";,若要逐个输出元素的值,可以写一个循环程序段,则这个循环段的“循环条件”是( D )。(1分) A、c=string[i]='\0' B、(c=string[i])='\0' C、c=string[i]!='\0' D、(c=string[i])!='\0' 19、在Turbo C下,若有数组定义:float f[10]={1,2,3,4};,则数组f所占的存储空间为( D )个字节。(1分) A、4 B、16 C、10 D、40 20、C语言允许用外部说明来指定变量、函数等,这里的外部指的是( D )。(1分) A、冠以关键字extern B、位置在函数体外部 C、作用范围是全程的 D、位置在函数外部 21、下列关于静态局部变量的说法中,不正确的说法是( D )。(1分) A、静态局部变量在函数内定义 B、静态局部变量的生存期为整个源程序 C、静态局部变量的作用域为整个源程序 D、静态局部变量若在说明时未赋初值,则系统自动赋予0值 22、下列关于局部变量的说法中,不正确的说法是( A )。(1分) A、不能在复合语句中定义变量 B、局部变量是在函数内部定义说明的 C、形参变量属于被调函数的局部变量 D、允许在不同的函数中使用相同的变量名 23、在复合语句中定义的变量( B )。(1分) A、只在主函数中有效 B、只在本复合语句中有效 C、可以在整个文件中有效 D、可以在所有函数中有效 24、如果全局的外部变量和函数体内定义的局部变量重名,则(B )。(1分) A、出错 B、局部变量优先 C、外部变量优先 D、全局的外部变量优先 25、在主函数中定义的变量( A )。(1分) A、只在主函数中有效 B、可以在整个文件中有效 C、可以在所有函数中有效 D、可以在被调用的函数中有效 26、能够在输出完字符串后自动输出一个回车换行的函数是( B )函数。(1分) A、putc() B、puts() C、printf() D、putchar() 27、在C程序中,main()的位置( A)。(1分) A、可以任意 B、必须作为第一个函数 C、必须作为最后一个函数 D、必须放在它所调用的函数之后 28、如果函数值的类型和return语句中表达式的值不一致,则(C )。(1分) A、语法出错 B、连接出错 C、以函数类型为准 D、以表达式值的类型为准 29、若在程序中用到“strlen()”函数时,应在程序开头写上(D )。(1分) A、#include B、#include C、#include D、#include 30、若有int f(int a,int b);,则说明函数f( B )。(1分) A、是一个内部函数 B、是一个外部函数 C、只能在本文件中使用 D、不能被同一源程序其他本文件中的函数调用 31、声明一个函数为外部函数,应该在声明函数的函数类型的前面加(C )。(1分) A、auto B、static C、extern D、register 32、若有int a=3,*pa; float f=4.5,*pf;,则下列表述中,错误的是 (B )。(1分) A、pa=&a B、pa=&f C、pf=&f D、*pf=a+f 33、设char s[10];int i=5;,下列表达式中,正确的表达式是( B )。(1分) A、s[i+6] B、*(s+i) C、*(&s+i) D、*((s++)+i 34、若有int a[10],*p=a;,则( C )。(1分) A、p++可以使p指向下一个字节 B、p+=2 相当于p=sizeof(a)/10 C、p++可以使p指向下一个元素,即a[1]的首地址 D、p+=2可以使p指向下一个元素,即a[1]的首地址 35、设有语句:int a[10]={0,1,2,3,4,5,6,7,8,9},i,*p=a;,下列表达式中,对a数组元素引用错误的是( D )。(1分) A、p[i] B、a[p-a] C、*(&a[i]) D、*(*a(a+i)) 36、在C语句中,&后跟指针变量名,表示该指针变量的((C )。(1分) A、值 B、别名 C、地址 D、类型 37、若程序中包含有以下说明和定义:struct ex{ int x,y;} … struct ex,x,y; …,则在计算机上调试时, ( A )。(1分) A、编译出错 B、可以编译、连接、执行 C、可以编译、连接,但不能执行 D、可以编译,但连接出错 38、“.”运算符称为( C )运算符。(1分) A、指针 B、取地址 C、结构体成员 D、指向结构体成员 39、设有定义语句“struct {int a;float b;char c;}abc;”,则对结构体成员a的引用可以是( A )。(1分) A、abc.a B、abc-a C、abc>a D、abc->a 40、在说明一个结构体变量时系统分配给它的存储空间是( C )。(1分) A、该结构体中的第一个成员所需存储空间 B、该结构体中的最后一个成员所需存储空间 C、该结构体中所有成员所需存储空间的总和 D、该结构体占用最大存储空间的成员所需存储空间 41、下列关于C语言数据文件的叙述中,正确的叙述是( D )。(1分) A、文件由ASCII码字符序列组成,C语言只能读写文本文件 B、文件由二进制数据序列组成,C语言只能读写二进制文件 C、文件由 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 序列组成,可按数据的存放形式分为二进制文件和文本文件 D、文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 42、在C语言中,关于文件存取方式,( C)。(1分) A、只能顺序存取 B、只能随机存取(也称直接存取) C、可以顺序存取,也可以随机存取 D、只能从文件开头存取 43、C语言可以处理的文件类型是( B )。(1分) A、文本文件和数据文件 B、文本文件和二进制文件 C、数据文件和二进制文件 D、都不对 44、以读写方式打开一个已存在的二进制文件file1,fopen函数的正确的调用方式是( D)。(1分) A、FILE *FP; FP=fopen("r","file1"); B、FILE *FP; FP=fopen("file1","r"); C、FILE *FP; FP=fopen("rb+","file1"); D、FILE *FP; FP=fopen("file1","rb+"); 45、设fp 是文件指针,str 是一个字符串变量,n是一个整数,向文件中输出字符串的正确格式是( A )。(1分) A、fputs(str,fp); B、fputs(fp,str); C、fputs(str,n,fp); D、fputs(fp,n,str); 46、函数调用语句fseek(fp,-10L,2)的含义是( D )。(1分) A、将文件位置指针移动距文件头10个字节处 B、将文件位置指针从当前位置向文件尾方向移10个字节 C、将文件位置指针从当前位置向文件头方向移10个字节 D、将文件位置指针移至距文件尾10个字节处 47、fp 是文件指针,str 是一个字符串,n是一个整数,向文件中输出数据的正确格式是( B )。(1分) A、fprintf("%s,%d\n",str,n,fp); B、fprintf(fp,"%s,%d\n",str,n); C、fprintf("fp %s,%d\n",str,n); D、fprintf("%s,%d fp\n",str,n); 48、在C程序中,可把整型数以二进制形式存放到文件中的函数是( C )。(1分) A、fprintf函数 B、fread函数 C、fwrite函数 D、fputc函数 49、 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 函数 fgets(s, n, f) 的功能是( B )。(1分) A、从文件f中读取长度为n的字符串存入指针s所指的内存 B、从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C、从文件f中读取n个字符串存入指针s所指的内存 D、从文件f中读取n-1字符串存入指针s所指的内存 50、若fp是指向某文件的指针,若没到该文件的末尾,则函数表达式!feof(fp)的值是( B )。(1分) A、EOF B、1 C、非零值 D、0 二、填空题(7道小题,共30分) 1、* 下面程序的功能是:将从键盘上输入的小写字母变成对应大写字母后的第二个字母并输出。其中y变成A,z变成B。 #include void main() { char 【c 】; while(( c=getchar())!='\n') { if(c>='a' && c<='z') { c-=30; if(c>'Z'&&c<='Z'+2) c-=26; } printf("%【c 】",c); } printf("%c",c); } (4分) -------------------------------------------------------------------------------- 2、* 用冒泡法对10个数排序 #include void main() { 【int 】 a[11],i,j,t; printf("Input 10 numbers:\n"); for(i=1;i<11;i++) scanf("%d",&a[i]); printf("\n"); for(i=1;i<=9;i++) for (j=【1 】;j<=10-i;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf("%d ",a[i]); } (4分) -------------------------------------------------------------------------------- 3、* 两个乒乓球队进行比赛,各出三人甲队为A、B、C.乙队为X、Y、Z三人.已经抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比. 编程序找出三对赛手的名单. #include void main() { char 【i 】, j, k; for ( i='X'; i<='Z'; i++) for ( j='X'; j<='Z'; j++) 【if】(i!=j) for (k='X';k<='Z';k++) if(i!=k&&j!=k) if ( i!='X'&&k!='X'&&k!='Z') printf("A--%c\tB--%c\tC--%c\n" , i , j , k); } (4分) -------------------------------------------------------------------------------- 4、* 程序的功能是显示具有n个元素的数组s中的最大元素。 #include #define 【N 】 30 void main() { int i,a[N]; int fmax(int s[],int n); for(i=0;is[k]) k=p; return(k); } (4分) -------------------------------------------------------------------------------- 5、* 由系统随机产生一个N×N矩阵(矩阵中的元素值在[10,99]范围内),输出这个矩阵下三角区所有元素的和。 #define N 5 #include main() { int a[N][N],b[N*N],【k】=-1,f,t,i,j,s; printf("正在产生 %d 个在[10,99]范围内随机数...\n\n",N*N); for(i=0;i void main() { int i,j; for(i=1;i<=4;i++) { for(j=1;j<40-i;j++) printf(" "); for(j=1;j<=i;j++) printf("%d",j); for(j=【i】-1;j>0;j--) printf("%d",j); printf("\n"); } for(i=3;i>=【1】;i--) { for(j=1;j<40-i;j++) printf(" "); for(j=1;j<=i;j++) printf("%d",j); for(j=i-1;j>0;j--) printf("%d",j); printf("\n"); } } (4分) -------------------------------------------------------------------------------- 7、* 下面程序的功能是计算正方形的面积。 #include void main() { float a,s; 【float】 *p,*area; p=&a; area=&s; scanf("%f",p); s=(*p)*(*p); printf("area is=%2f\n",*【area】); } (4分) -------------------------------------------------------------------------------- 三、编程题(3道小题,选作2道,每道15分,共30分) * 编写程序: * 写程序,输出1000以内第二大的素数。 (10分) 必须将本题程序最后的运行结果填入下面的框中。否则,该题以零分计! 编程 * 编写程序: * *求1000以内素数的平均值(1不是素数,保留小数点后三位)。 参考答案: #include #include int main() { int i,j,k,n=0,m=0; for(i=1000;i>1;i--) { k=sqrt(i); for(j=2;j<=k;j++) if(i%j==0)break; if(j>k) {n=n+i;m++; } } printf("%.3f\n",(double)n/m); return 0; } 运行结果:453.137 2. 、* 编写程序: * 先下载数据文件wj4.txt到自己的计算机中,然后编制程序,要求:统计出该数据文件中 从第51个到第10000个数据中奇数的个数。参考答案: #include #include int main() { int i=0,a[10000],s=0; FILE *p; p=fopen("D:\\a\\wj4.txt","r"); for(i=0;i<10000;i++) fscanf(p,"%d",&a[i]); for(i=50;i<10000;i++) if(a[i]%2!=0)s++; printf("%d\n",s); fclose(p); return 0; } 运行结果:4959
本文档为【c语言期末模拟考试题及答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_594886
暂无简介~
格式:doc
大小:51KB
软件:Word
页数:29
分类:工学
上传时间:2019-04-21
浏览量:366