c语言试卷2
- 格式:doc
- 大小:71.00 KB
- 文档页数:6
期末试卷二一、单项选择题(每题1分,共45分)1.下列变量名中,哪个是合法的()A.C&D B.string$C.char D._2132.C语言程序的基本单位是()A.程序行B.语句C.函数D.字符3.表达式a+b%3的值是()(设a=13.6,b=10)A.14.6 B.15C.15.9 D.16.64.保存一个C语言源程序的快捷键是()A.F1 B.F2 C.F3 D.F45.字符串”tc20\nlib\101\\\’”含有多少个字符( )A.10 B.11 C.12 D.136.Putchar()函数可以向终端输出一个()A. 整型变量或表达式值B. 实型变量值C. 字符串D. 字符或字符型变量值7.以下所列的C语言常量中,错误的是()A.0xFF B.2*5 C.2.5 D.04568.下列不合法的C语言赋值表达式是()A.a+=b-c B.a+b=cC.a=b=c=1 D.a*=++b+c9.下列程序运行后的输出结果是()main(){ int y=3,x=3;printf(“%d\n”,++x+y++);}A.5 B.8 C.7 D.610.若已正确定义x和y为double类型,则表达式x=1,y=x+3/2的值是()A.1 B.2 C.2.0 D.2.511.在C语言中运算对象必须是整型的运算符是()A.% B./ C.= D.*12.若有以下定义:char a; int b; float c;则表达式a*b-c值的类型为()A.int B.char C.double D.float13.下列正确的C语言赋值语句的是()A.x=3,y=5 B.a=b=1 C.i++; D.y=int(x)14.有如下程序段:int a1,a2;char c1,c2;scanf("%d%c%d%c",& a1,&c1,&a2,&c2);若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入是()(<CR>表示回车) A.10A 20B<CR> B.10 A 20 B<CR>C.10 A20B<CR> D.10A20 B<CR>15.有如下程序,输入数据:12345m678<CR>后,x的值是()#include <stdio.h>main( ){ int x; float y;scanf("%3d%f", &x,&y);}A.12345 B.123 C.45 D.34516.有如下程序,对应正确的数据输入是()main( ){ float a, b;scanf("%f%f", &a,&b);printf("a=%f,b=%f\n",a,b);}A.2.04<CR> B.2.04,5.67<CR>5.67<CR>C.a=2.04,b=5.67<CR> D.2.045.67<CR>17.有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,& c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式是()A.132<CR> B.1,3,2<CR>C.a=1,b=3,c=2<CR> D.a=1 b=3 c=2<CR>18.已知字母A的ASCII码是65,以下程序的执行结果是()main( ){char c1='A', c2='Y';printf("%d,%d\n", c1, c2);}A.A,Y B.65,65 C.65,90 D.65,8919.以下程序的执行结果是()main( ){ int a=2,b=5;printf("a=%d,b=%d\n", a, b);}A.a=%2,b=%5 B.a=2,b=5C.a=%%d,b=%%d D.a=%d,b=%d20.最适合解决选择结构“若x>0, 则y=1;否则y=0;”的语句是()A.switch B.嵌套的if-else C.if-else D.if21.设整型变量x,y和z的值依次为3,2和1,则下列程序段的输出结果是()if(x>y)x=y;if(x>z)x=z;printf(″%d,%d,%d\n″,x,y,z);A.1,1,1 B.1,2,1 C.1,2,3 D.3,2,122.执行下列程序段后,变量x的值是()int a=8,b=7,c=6,x=1;if(a>6) if(b>7) if(c>8) x=2;else x=3;A.0 B.1 C.2 D.323.运行下列程序的输出结果是()main(){ int a1=1,a2=1,a3=1,a4=1;if (a1>0) a3++;if (a1>a2) a3--;else if (a1= =a2) a3++;else a3--;printf(″%d,%d,%d,%d\n″,a4,a3,a2,a1);}A.1,1,1,1 B.1,2,3,4C.4,3,2,1 D.1,3,1,124.执行下列语句后,整型变量x的值是()switch (x=1) { case 0:x=10;break;case 1:switch (x=2) {case1:x=20;break;case2:x=30;}}A.30 B.20 C.10 D.125.以下说法中正确的是()A.continue和break只能用在循环体中B.continue只能用在循环体中C.break只能用在循环体中D.continue只能用在循环体外26.执行下列程序段的输出是()m=8;while (m>=5) m--,--m,n=m--- m;pritnf (″%d,%d″,m,n);A.2, 0 B.5,-1 C.5,0 D.5,127.设整型变量x的值为1,执行下列循环语句后,变量x 的值是()do x++; while (x++<2);A.2 B.3 C.4 D.528.执行下列语句后,变量k的值是()for (k=0;k<=5;k++) do k++;while (k<5);A.5 B.6 C.7 D.829.下列程序段中,不能使变量m的值等于10的程序段是()A.m=0; B.do m=0;while (m++<9); while (m++<10);C.for (m=8;m<10;m++); D.m=0;L:m++;if (m<10)goto L;30.下列语句中不正确的是()A.static int a[5]={1,2,3,4,5};B.static int a[5]={1,2,3};C.static int a[]={0,0,0,0,0};D.static int a[5]={0*5};31.说明:int a[10];则对a数组元素的正确引用是()A.a[10] B.a[3.5] C.a(5) D.a[10-5] 32.下面程序的运行结果是()main(){ int a[6],i;for(i=1;i<6;i++){a[i]=9*(i-2+4*(i>3))%5;printf(“%2d”,a[i]);}}A.-4 0 4 0 4 B.-4 0 4 0 3C.-4 0 4 4 3 D.-4 0 4 4 033.以下程序的输出结果是()main(){ int n[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]+1;printf(“%d\n”,n[1]);}A.1 B.3 C.2 D.434.下面程序的输出结果是()main(){char s[]=”cat and mouse”;int j=0;while(s[j]!=’\0’) ++j;printf(“%d\n”,j);}A.11 B.0 C.12 D.1335.下面程序的运行结果是()#include <stdio.h>main(){char a[10]=”student”;char b[10]=”boy”;int n;n=strlen(a)+strlen(b);printf(“%d”,n);}A.7 B.10 C.12 D.2036.以下程序的输出结果是()void fun(int a,int b,int c){ a=456;b=567;c=678;}main(){ int x=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}A.30,20,10 B.10,20,30C.456,567,678 D.678,567,45637.以下说法中正确的是()A.C语言程序总是从第一个定义的函数开始执行。
C语言程序设计2(考试时间90分钟,满分100分)一、选择题(每题2分,共6()分)下列各题A)、B)、C)、D)四个选项屮,只有一个选项是正确的,请将正确的选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)以下关于结构化程序设计的叙述中止确的是A)一个结构化程序必须同时由顺序、分支、循坏三种结构纽成B)结构化程序使用goto语句会很便捷C)在C语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题(2)以下关于简单程序设计的步骤和顺序的说法中正确的是A)确定算法后,整理并写岀文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构(3)以下叙述中错误的是A)C程序在运行过程中所有计算都以二进制方式进行B)C程序在运行过程屮所有计算都以I-进制方式进行C)所有C程序都需要编译链接无谋后才能进行D)C程序小整型变量只能存放整数,实型变量只能存放浮点数(4)有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是A)a%(int)(x-y) B) a=x!=y; C) (a*y)%b D) y=x+y=x(5)以下选项屮能表示合法常量的是A)整数:1,200 B)实数:1.5E2.0C)字符斜杠:丫D)字符串:0007”(6)表达式a+=a-=a=9的值是A)9B) -9 0 18D) 0(7)若变量已正确定义,在if(W)printf(“%d\n”,k);中,以下不可替代W的是A)aob+c B) ch=getchar() C) a==b+c D) a++(8)有以下程序#includemain(){ int a=l,b=0;if(!a) b++;else if(a==0)if(a) b+=2;else b+=3;printfC^dViV^b);程序运行后的输出结果是A) OB) 1 C) 2D) 3(9)若有定义语句int a,b;double x;则下列选项中没有错误的是A)switch (x%2){ case 0: a++; break;case 1: b++; break;default: a++; b++; }B)switch ((int)x/2.0){ case 0: a++; break;case 1: b++; break;default: a++; b++; }C)switch((int)x%2){ case 0: a++; break;case 1: b++; break;default: a++; b++; }D)switch((int)(x)%2){ case 0.0: a++; break;case 1.0: b++; break;default: a++; b++; }(10)有以下程序# includemain(){ int a=l,b=2;whilc(a<6) {b+=a; a+=2;b%=10;}printf(“%d, %d\n,,,a,b);}程序运行后的输出结果是A)5,11 B)7,l C)7,ll D)6,1(ID下列选项中,能够满足喏字符串si等于字符串s2,则执行ST”要求的是A ) if(strcmp(s2,sl) ==0) ST;B)if(sl==s2) ST;C)if(strcpy(sl,s2) ==1)ST;D)if(sl-s2==0) ST;(⑵以下不能将s所指字符串正确复制到t所指存储空间的是A)while(*t=*s) {t++,s++;}B)for(i=0;t[ij=s[ij;i++);C)do{ *t++=*s++; }while(*s);D)for(i=0,j=0;t[i++]=s|j++];);(13)有以下程序(strcat函数用以连接两个字符串)#include <stdio.h>#include <string.h>main(){ char a[20]=''ABCD\0EFG\0", b[ ]="IJK';strcat(a,b);printf(<<%s\n,,,a);}程序运行后的输出结果是A) ABCDE\OFG\OIJKB)ABCDIJKC)IJKD)EFGIJK(14)冇以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母#inelude <stdio.h>#include <ctype.h>void fun(char *p){ int i=0;while(p[i]){ if(p[i] ==K ,,&&islower(p[i-l])) p[i-l]=p[i-l]-M a<t+tc A t<;i++;}}main (){ charsl[100]="abcdEFG !";fun(sl);printf(“ %s\n”,sl);1程序运行后的结果是A) ab cd EFG ! B) Ab Cd EFg ! C) aB cD EFG ! D) ab cd EFg !(15)有以下程序#includevoid fun(int x){ if(x/2>l)fun(x/2);printf(“ %d ”,x);}main(){ fun(7);printf(u\n n);}程序运行后的输出结果是A) 1 37B) 73 10 73D) 37(16)有以下程序#includeint fun(){ static int x= 1;x+=l;return x;main(){ int i, s=l;for(i=l;i<=5;i++)s+=fun();printf(“%d\n”,s);}程序运行后的输出结果是A) 11 B) 21 C) 6D) 120(17)有以F程序、#include <stdio.h>#include <stdlib.h>main(){ int *a,*b,*c;a=b=c=(int *)malloc(sizeof(int));*a=l;*b=2;*c=3;a=b;printf(“ %cl,%d,%d\n'',*a,*b,*c);}程序运行后的输出结果是A) 3,3,3 B) 2,2,3 0 1,2,3 D) 1,1,3(18)有以下程序#inckidcmain(){ int s,t,A=10;double B=6;s=sizeof(A);t=sizcof(B);printf("%d,%d\n'',s,t);}在VC6平台上编绎运行,程序运行后输出结果是A) 2,4 B) 1,40 4,8 D) 10,6(19)若有以下语句typedef struct S{int g ; char h;} T;以下叙述屮正确的是A)可用S定义结构体变量B)可用T定义结构体变量C) S是struct类型的变量D) T 是struct S 类型的变最(20)有以下程序# includemain(){ short c=124; c=c ;printf(“%d\n”,c);若要使程序的运行结果为248,应在卜•划线处填入的是A) »2B) 1248 C)& 0248 D) «1(21)有以下程序#includemain(){ int y=10;while(y-);printfC t y=%d\n,,,y);}程序执行后的输出结果是A) y=()B)y=-l C)y=l D)while 构成无限循环(22)冇以下程序#inckidcmain(){ char s[ J=M rstuv,*;printf(u%c\n,,,*s+2);}程序运行后的输出结果是A) tuvB)字符t的ASCII值C) tD)出错(23)有以下程序#include <stdio.h>#include <string.h>main(){ char x[ ]="STRING';x[0]=0;x[l]「\(T; x[2]=V\printf ( "%d %d\n,,,sizeof(x),strlen(x));}程序运行后的输出结果是A) 6 1 B) 7 0 C) 6 3 D) 7 1(24)有以下程序#includeint f(int x);main(){ int n=l,m;m=f(f(f(n)));piintf(“ %d\n”,m);}int f(int x){ return x*2; }程序运行后的输出结杲是A) 1 B) 20 4D) 8(25)以下程序段完全正确的是A)int *p; scanf("%d'',&p);B)int *p; scanf("%d”,p);C)int k, *p=&k; scanf("%d",p);D)int k,*p; *p=&k; scanf("%d”,p);(26)有定义语句:int *p[4];以下选项中与此语句等价的是A ) int p[4]; B)int **p; C)int *(p[4]); D)int (*p)[4];(27)下列定义数组的语句中,正确的是A) int N=10; B) #define N 1() int x[N]; int x[N]; C) int x[0..10]; D) int x[ 1;(28)若耍定义一个具有5个元素的整型数组,以下错误的定义语句是A)int a[5]={0); B) int b[ ]={0,0,0,0,0}; C)int c[2+3]; D) int i=5,d[i];(29)有以下程序#includevoid f(int *p);main(){ int a⑸={l,2,3,4,5},*r=a;f(r );printf(u%d\n,\*r);)void f(int *p){ P=P+3;printf("%d,",*p);}程序运行后的输出结果是A)1,4B)4,4 C) 3,1 D)4,l(30)有以下程序(函数fun只对下标为偶数的元素进行操作)#includevoid fun(int *a,int n){ int i,j,k,t;for(i=();i<n-l ;i+=2){k=i;for(j=i;j<n;j+=2) if(a[j]>a[k]) k=j;t=a[i]; a[i]=a[k]; a[k]=t; }}main(){ int aa[10]={l,2,3,4,5,6,7},i;fun(aa,7);for(i=0;i<7;i++)printf(“%d,”,aa[i]);printf(“\iT);1程序运行后输出结果是A) 7,2,5,4,3,6,1, B) 1,6,3,4,5,2,7, C) 7,6,5,4,3,2,1, D) 1,7,3,5,6,2,1,二、填空题(每空2分,共20分)请将每空的正确答案写在答题卡【1】至【10】序号的横线上,答在试卷上不得分。
《C 语言程序设计》模拟试卷2考试班级:一、判断题(2’×10=20’)1、C 语言源程序文件的扩展名均为.c 。
( )2、所谓变量,就是在程序运行过程中其值不可以改变的量。
( )3、一个C 语言程序总是从main 函数开始执行。
( )4、C 语言中所有字符串都是以‘\0’结束的。
( )5、在C 语言中do-while 和while 语句均是先判断表达式,再执行循环体语句。
() 6、算术运算符中‘/’的优先级高于‘%’。
( )7、int a[5];该语句表明数组a 中的第五个元素为a[5]。
( ) 8、函数getchar()的作用是:输出一个字符。
( )9、C 语言程序区分大小写。
( )10、C 语言中标识符第一个字符可以由字母,数字和下划线三种字符组成。
()二、单项选择题(2’×15=30’)1、以下说法正确的是( )。
A 、C 语言程序总是从第一个的函数开始执行B 、在C 语言程序中,要调用函数必须在main()函数中定义C 、C 语言程序总是从main()函数开始执行D 、C 语言程序中的main()函数必须放在程序的开始部分2、C 语言中基本数据类型包括( )。
A 、整型、实型、逻辑型B 、整型、实型、字符型C 、整型、字符型、逻辑型D 、字符型、实型、逻辑型3、下列可用于C 语言用户标识符的一组是( )。
A 、1AB 、P_0C 、-abcD 、int4、C 语言的三种基本结构是( )。
A 、顺序结构、逻辑结构、选择结构B 、顺序结构、选择结构、循环结构 系部:班级:学号:姓名:C、逻辑结构、层次结构、网状结构D、层次结构、顺序结构、循环结构5、起换行作用的转义字符是()。
A、’\t’B、’\b’C、’\n’D、’\r’6、设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为()。
A、intB、floatC、double D)不确定7、关于数组元素类型的说法,下列那一项是正确的:()。
全国计算机等级考试《二级C语言程序设计》模拟试卷二[单选题]1.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是((江南博哥))。
A.外模式B.内模式C.概念模式D.逻辑模式参考答案:B参考解析:数据库管理系统的三级模式包括:①外模式,也称子模式、用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图;②模式,也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和;③内模式,也称存储模式、物理模式,是指数据在数据库系统内的存储介质上的表示,是对数据的物理结构和存取方式的描述。
答案选择B选项。
[单选题]4.下面不属于需求分析阶段任务的是()。
A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划参考答案:D参考解析:需求分析阶段的工作主要包括4个方面:①需求获取,其目的是确定对目标系统的各方面需求;②需求分析,对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型;③编写文档,编写需求规格说明书,编写初步用户使用手册;④确认测试计划,修改完善软件开发计划,需求评审。
制定软件集成测试计划属于概要设计阶段的任务。
答案选择D选项。
[单选题]5.结构化程序的三种基本控制结构是()。
A.顺序、选择和重复(循环)B.过程、子程序和分程序C.顺序、选择和调用D.调用、返回和转移参考答案:A参考解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环)。
答案选择A选项。
[单选题]6.构成计算机软件的是()。
A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档参考答案:D参考解析:计算机软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
答案选择D选项。
[单选题]7.在黑盒测试方法中,设计测试用例的主要根据是()。
A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图参考答案:B参考解析:黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能规格说明。
C语⾔模拟试卷2(带答案)单选题:1、执⾏下⾯的程序段后,变量k中的值为s[0]=k; k=s[1]*10;A. 不定值B. 33C. 30D. 10答案: A2、设有以下定义:#define N 3#define Y(n) ( (N+1)*n)则执⾏语句:z=2 * (N+Y(5+1));后,z的值为_______.2*(3+(4*5+1)A. 出错B. 42C. 48D. 54答案: C3、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是____A. 1B. 2C. 2.0D. 2.5答案: c4、请选出以下语句的输出结果____printf("%d\n",strlen("\t\ 065\xff\n"))A. 5B. 4C. 8D. 输出项不合法,⽆正常输出答案: B5、为避免嵌套的条件分⽀语句if…else的⼆义性,C语⾔规定,C 程序中的else总是与____组成配对关系。
C. 缩排位置相同的ifD. 在其之前未配对的if答案: A6、若X和Y都是int型变量,X=100,Y=200,且有下⾯的程序⽚段: printf("%d",(X,Y));上⾯程序⽚段的输出结果是A. 200B. 100C. 100 200D. 输出格式符不够,输出不确定的值答案: A7、请读程序⽚段(字符串内没有空格字符):printf("%d\n", strlen("ATS\n012\1\\"));上⾯程序⽚段的输出结果是A. 11B. 9C. 10D. 8答案: B8、设有以下程序段int x=0,s=0;while(!x!=0) s+=++x;printf("%d",s);则______A. 运⾏程序段后输出0B. 运⾏程序段后输出1C. 程序段中的控制表达式是⾮法的D. 程序段执⾏⽆限次答案: B9、阅读下列程序:main( ){ int n[3],i,j,k;for(i=0;i〈 3;i++)n[i]=0;i=1: =3 =3for (j=0;j〈 2;j++)n[j]=n[i]+1;printf("%d\n",n[1]);}下述程序运⾏后输出结果是A. 2B. 1C. 0D. 3答案: D10、输⼊⼀个华⽒温度,要求输出摄⽒温度。
2023年9月青少年软件编程C语言等级考试试卷二级(含答案)分数:100题数:5一、编程题(共5题,共100分)第1题.数组指定部分逆序重放将一个数组中的前k项按逆序重新存放,例如,将数组8,6,5,4,1前3项逆序重放得到5,6,8,4,1。
时间限制:1000内存限制:65536输入:有两行,第一行两个整数,以空格分隔,分别为数组元素的个数n(1<n<100)以及指定的k(1<=k<=n)。
第二行是n个整数,每两个整数之间用空格分隔。
输出:只有一行,输出按题目要求逆序后数组的整数,每两个整数之间用空格分隔。
样例输入:5386541样例输出:56841参考答案:#include<bits/stdc++.h>using namespace std;int a[1000],b[1000];int main(){int n,k;cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];b[i]=a[i];}for(int i=k-1;i>=0;i--){cout<<b[i]<<';';}for(int i=k;i<n;i++){cout<<a[i]<<';';}}第2题.谁考了第k名在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学.号和成绩,求考第k名学生的学.号和成绩。
时间限制:1000内存限制:65536输入:第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。
其后有n行数据,每行包括一个学.号(整数)和一个成绩(浮点数),中间用一个空格分隔。
输出:输出第k名学生的学.号和成绩,中间用空格分隔。
(注:请用%g输出成绩)。
样例输入:539078800167.89078800290.390788003619078800468.49078800573.9样例输出:9078800468.4参考答案:#include<bits/stdc++.h>using namespace std;int sum(int n){int s=0;while(n>0){s+=n%10;n/=10;}return s;}int main(){int i,j,t,n,a[1000],b[1000];cin>>n;for(i=0;i<n;i++){cin>>a[i];b[i]=sum(a[i]);}for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if((b[j]<b[j+1])||((b[j]==b[j+1])&&(a[j]<a[j+1]))){t=b[j];b[j]=b[j+1];b[j+1]=t;t=a[j];a[j]=a[j+1];a[j+1]=t;}}}for(i=0;i<n;i++){cout<<a[i]<<"";}return0;}第3题.内部元素之和输入一个整数矩阵,计算位于矩阵内部的元素之和。
C语⾔程序设计模拟试卷(2)模拟试卷⼀⼀、选择题(每题1分,共15分) 在每⼩题列出的四个选项中只有⼀个是符合题⽬要求的,请在正确答案前点选,错选或未选均不得分。
1. 以下选项中不合法的⽤户标识是:正确答案A. _123B. printfC. A$D. Dim2. 在C 语⾔中,char 型数据在内存中的存储形式是:正确答案A. 补码B. 反码C. 原码D. ASCII 码正确答案:D3. 设x,y,z 为int 型变量,且x=3,y=4,z=5 ,则下⾯表达式中值为0 的是:正确答案A. 'x'&&'y'B. !((xC. x||y+z&&y-zD. x<=y正确答案:B4. 若有定义:int a=2,b=4,c; 执⾏语句c=a/b+2.6 ;后,c 的值为:正确答案A. 2.6D. 2正确答案:D5. 设a 为整型变量,不能确定表达数学关系10正确答案A. 10B. a==11|| a==12|| a==13|| a==14C. a>10&&a<15D. !(a<=10)&&!(a>=15)正确答案:C6. 若i 、j 已定义为int 型,则以下程序段中语句printf( “ %d ” ,i*j); 的执⾏次数是:for (i=3;i>0;i-- )for (j=0;j<4;j++ )printf( “ %d ” ,i*j);正确答案A. 12B. 15C. 16D. 20正确答案:A7. 若有输⼊语句“ scanf( "%d%d%d",&x,&y,&z); ”,则不能使x值为5,y 值为6,z值为7的输⼊是:正确答案A. 5 ,6 ,7< 回车>B. 5 6 7< 回车>C. 5 6 < 回车> 7< 回车>D. 5< 回车> ,6< 回车> ,7< 回车>正确答案:A8.执⾏以下程序段后,x ,y 和z 的值分别是:int x=10,y=20,z=30;if(x>y) z=x; x=y; y=z;正确答案:B9. 以下程序段x = -1;do{ x=x*x;} while(!x); 正确的说法是:正确答案A. 死循环B. 循环⼀次C. 循环两次D. 有语法错正确答案:B10. 以下正确的函数声明形式是:正确答案A. double fun(int x ,int y)B. double fun(int x ;int y)C. double fun(int x ,int y) ;D. double fun(int x ,y) ;正确答案:C11.若有定义char ch[8] ,则以下表达式中不能代表数组元素ch[1] 的地址是:正确答案A. &ch[0]+1B. &ch[1]C. &ch[0]++D. ch+1正确答案:C12. 若有初始化语句“ int a[5]={1,2,3,4,5}; ”,值为4 的表达式是:正确答案:C13. 若已有以下函数定义:float fun(float a, int b){int c;c=(int)a%b;return c;}则主调函数中语句“ printf("%f",fun(fun(fun(34,7),4),3)); ”的输出结果是:正确答案A. 2.000000B. 因参数类型与形参类型不⼀致,函数调⽤产⽣错误C. 2D. 因变量c 的类型与fun 函数的返回值类型不符,故输出值为随机值正确答案:A14. 已知:int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+2 ;则值为3 的表达式是:正确答案A. (*p)++B. *p++C. *++pD. ++*p正确答案:B15. 以下可作为函数fopen 中第⼀个参数的正确格式是:正确答案A. c:\user\file.txtB. "c:\user\file.txt"C. "c:\\user\\file.txt"⼆、填空题(共10题)1. 字符串存储时,末尾被系统⾃动加上字符。
C语言试卷2及答案(总8页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--扬州大学试题纸系课程 C语言程序设计(A)卷2002—2003学年第2学期班级_________学号________姓名__________得分___________一、选择题(每题分,共30分):1、已知:char a; int b; float c; double d;则执行语句:c=a+b+c+d; 后,变量c的类型为。
A. charB. intC. floatD. double2、已有定义int x; float y; 且执行scanf(“%2d%f”,&x,&y);语句时,从第一列开始输入数据12345 67<回车>,则y的值是。
A. 无定值B.C.D.3、设有以下程序段int x=0; s=0;while (!x!=0) s+=++x;printf(“%d”,s);则。
A. 运行程序段后输出0B. 运行程序段后输出1C. 程序段中的控制表达式是非法的D. 程序段执行无限次4、若i为整型变量,则以下循环执行次数是。
for(i=2; i==0;) printf(“%d”, i--);A. 无限次B. 2次C. 1次次5、假设char ch=’a’, *p=&ch;,以下语句中,有语法错误的是 .A. (*p)++;B. ch+=—‘a’+’A’;C. toupper(ch)=ch;D. ch++;6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”};则language[2]的值是。
A. 一个字符B. 一个地址C. 一个字符串D. 一个不定值7、C语言程序中,当调用函数时。
A. 实参和虚参可以共用存储单元B. 实参和虚参各占一个独立的存储单元C. 可以由用户指定是否共用存储单元D. 由计算机系统自动确定是否共用存储单元8、在程序中要使用语句:printf(“%s\n”, STRING);输出提示信息:“OK! ”(包括双引号),则应使用宏定义语句。
题号 一 二 三 四 五 六 总分 得分考试形式:■闭卷 □开卷 ■笔试 □机试 答卷要求:试卷答案需填写至答题卡内一、单项选择题(每小题 2 分,共 30 分)1 2 3 4 5 6 7 8 9 10 D C A B D B B B D A 11 12 13 14 15 BBBCD1、关于C 语言的叙述中,不正确的是(D )。
A) C 程序可由一个或多个函数组成 B) C 程序必须包含一个main()函数 C) C 程序的基本组成单位是函数D) 注释说明只能位于一条语句的后面2、C 语言源程序文件经过C 编译程序编译连接之后生成一个后缀为( C )的文件。
A) .cB) .objC) a#10 D) Pad C) .exe D) .basC) a#10 D) Pad3、若有定义:float x=3.5; int z=8; 则表达式x+z%3/4的值是( A ) A) 3.5B) 3.75C) 3D) 44、下列标识符中,不合法的用户标识符为( B )。
A) _intB) a#10C) abcD) Pad5、下面运算符优先级最低的是(D )。
A) !B) >=C) %D) +=6、若变量已正确定义,执行语句scanf (“%d,%d ”,&a, &b);若要求a 、b 的值分别为10和20,正确的数据输6入是( B ) A) 10 20B) 10,20C) a=10, b=20D) 10;207、对于整型变量x ,下述计语句与赋值句:x=x%2==0?1:0;不等价的是( B ) A) if (x%2!=0)x=0; else x=1; B) if (x%2)x=1; else x=0; C) if (x%2==0)x=1; else x=0; D) if (x%2==1)x=0; else x=1;8、以下程序运行后,循环体运行的次数为( B )int i=10,x; for( ;i<10;i++) x=x+i; A) 10B) 0C) 1D) 无限9、若有定义int a[2][3];则对数组元素的非法引用是( D ) A) a[0][1/2]B) a[1][1]C) a[4-4][0]D) a[0][3]10、在C 程序中,若对函数类型未加说明,则函数的隐含类型为(A )。
江苏省计算机等级考试- 学年第学期 c程序设计试卷( )1. 表示关系x≤y≤z的c语言表达式为A) (X<=Y)&&(Y<=Z)B) (X<=Y)AND(Y<=Z)C) (X<=Y<=Z)D) (X<=Y)&(Y<=Z)2. 以下程序的输出结果是main( ){int a=12,b=12;printf("%d %d\n",--a,++b);}A)10 10 B)12 12 C)11 10 D)11 133. 以下的for循环for(x=0,y=0; (y!=123)&&(x<4); x + + );A) 是无限循环B)循环次数不定C)执行4次D)执行3次4. 有以下程序main(){char a[]="programming",b[]="language";char *p1,*p2;int i;p1=a;p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));}输出结果是A)gm B)rg C)or D)ga5. 以下说法中正确的是A) #define和printf都是C语句B) #define是C语句,而printf不是C) printf是C语句,但#define不是D) #define和printf都不是C语句6. 下面的程序main(){ int x=3;do {printf("%d\n",X-=2);}while(!(--x));}A) 输出的是1 B) 输出的是1和-2 C) 输出的是3和0 D) 是死循环7. 下面能正确进行字符串赋值操作的语句是A)char s[5]={"ABCDE"}; B)char s[5]={'A'、'B'、'C'、'D'、'E'};C) char *s;s="ABCDEF"; D)char *s; scanf("%s",s);8. 以下程序的输出结果是main( ){ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=0;i<4;i+=2)printf("%d ",p[i]);}A) 5 2 B) 5 1 C) 5 3 D) 9 79. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为A) a<>0 B) !aC) a=0 D) a10. 下面各语句行中,能正确进行赋字符串操作的语句行是A) char st[4][5]={"ABCDE"}; B) char s[5]={'A','B','C','D','E'};C) char *s; s="ABCDE"; D) char *s; scanf("%s",s);111. 若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是A) EOF B) -1 C) 非零值D) NULL12. 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是A)k=*p1+*p2;B)p2=k;C)p1=p2;D)k=*p1 *(*p2);13. 下面程序的输出是main(){ int a=-1, b=4,k;k=(a++<=0)&&(!(b--<=0));printf("%d %d %d\n",k,a,b);}A) 0 0 3 B) 0 1 2 C) 1 0 3 D) 1 1 214. 若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是A) pb=&x B) pb=x; C) *pb=&x; D) *pb=*x15. 设有static char str[ ]="Beijing";则执行printf("%d\n", strlen(strcpy(str,"China")));后的输出结果为A) 5 B) 7 C) 12 D) 1416. 以下程序的输出结果是A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1main( ){ int x=10,y=10,I;for(i=0;x>8;y=++i)printf("%d,%d ",x--,y);}17. 设有如下函数定义:int f(char *s){ char *p=s;while(*p!='\0') p++;return(p-s); }如果在主程序中用下面的语句调用上述函数,则输出结果为printf("%d\n",f("goodbey!"));A) 3 B) 6 C) 8 D) 018. 若执行下面的程序时从键盘上输入3和4,则输出是main(){ int a,b,s;scanf("%d %d",&a,&b);s=a;if(a<b)s=b;s=s*s;printf("%d\n",s);}A) 14 B) 16 C) 18 D) 2019. 下面四个选项中,均是C语言关键字的是:A. auto enum include B swith typedef continueC signed union scanfD if struct type20. 有以下程序viod fun (int a,int b,int c){a=456;b=567;c=678;}main(){int x=10,y=20,z=30;fun (x,y,z);printf("%d,%d.%d",x,y,z);}输出结果是A)30,20,10B)10,20,30C)456,567,6782D)678,567,456二、填空题(每空1分,共10分。
)1. 为表示关系:x≤y≤z ,应使用的C语言表达式是_____________。
2. 字符串是以__________为结束标志的一维字符数组。
有定义:char a[]="";则a 数组的长度是____________。
3. 设int a; float f; double i ;则表达式10+'a'+i*f值的数据类型是___________。
4. 设有说明语句"int a[3][4]={{1,2},{3,4,5},{6,7,8}};"则a[0][2]的初始化值为_____________,a[2][2]的初始化值为______________。
5. 假定p所指对象的值为25,p+1所指对象的值为46,则执行"(*p)++;"语句后,p所指对象的值为___________6. 程序由主要由__________、_________组成。
7. 有函数调用fun1(x+y,(y,z),10,fun((x,y―1)));函数fun1有_______ 个参数三、判断题(本题共10道小题,共10分。
)1. 在C中,外部变量的隐含类别是自动存储类别( )2. 实参和与其对应的形参共占用一个存储单元()3. 在不得已的情况下(例如提高程序运行效率),才使用goto语句()4. 条件表达式可以取代if语句,或者用if语句取代条件表达式()5. 函数中的静态变量在函数每次调用时,都会重新设置初值()6. 全局变量都是静态存储()7. 如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明()8. 系统不允许用户重新定义标准库函数()9. 若调用一个函数,且此函数中没有return语句,则该函数没有返回值()10. 函数调用:strcat(strcpy(str1,str2),str3)的功能是将串str2连接到串str1之后再将串str1复制到串str3中( )四、程序填空(本题共5道小题,每题4分,共20分。
)1. 以下fun函数把ch中的大写字母转换成字母序列中的下一个大写字母,字母Z 转换成字母A,其它字符不变,返回转换后的字母或其它字符。
请填空。
char fun(char ch){if(ch= ='Z')ch=__________;else if(ch>='A'&&ch<='Y')ch=__________;return ch;}2. 以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。
请填空。
void sstrcpy(char *s,char *t){ while(*s++=_____________);}main( ){ char str1[100],str2[]="abcdefgh";sstrcpy(str1,str2);printf("%s\n",str1);}3. 以下程序段用于构成一个简单的单向链表。
struct STRU{ int x, y ;float rate;____________p;} a, b;a.x=0; a.y=0; a.rate=0; a.p=&b;b.x=0; b.y=0; b.rate=0; b.p=NULL;4. 电话990拨号上网费率白天是每小时4.20元,夜间是每小时2.70元。
使用的分钟(整数minute)和费率(含小数fei)变量由键盘输入,请补上语句。
main(){ int minute; float fei;scanf(______________ );printf("上网费=%8.2f元\n", _____________ );}35. 以下程序中,for循环体执行的次数是______________。
#define N 2#define M N+1#define K M+1*M/2main(){ int i;for(i=1;i<K;i++){ ... }...}五、编程题(本题共2道小题,共20分。