您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计模拟试题1
1C语言程序设计模拟试题.一、填空题.1.C语言程序的三种基本结构是顺序结构,选择结构,循环结构。2.if语句控制表达式只有其值为非0表示逻辑值“真”,其值为0表示逻辑值“假”。3.说明语句:intb[10];定义了数组b有10个整型元素,这些数组元素的下标是从0开始,最大为9。4.有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]=0,a[2][1]=6.5.设x,y,z均为int型变量,C语言描述”x或y中有一个小于z”的表达式是xz‖yz。6.若for循环用以下形式表示:for(表达式1;表达式2;表达式3)循环体语句则执行语句for(i=0;i3;i++)printf(“*”);时,表达式1执行1次,表达式3执行3次。7.说明语句:inta,*p;定义了一个整型变量a和一个指针变量p,使指针变量p指向整型变量a的语句是:p=&a,此时*p与变量a等价。28.在C语言中,十进制数30的八进制表示形式是036,十六进制表示形式是0x1e9.C程序是由函数组成的。一个C程序由一个main()函数和若干个子函数构成。函数的构成可分为两部分:函数说明(或函数头)和函数体。10.标识符是指程序中的符号常量、变量、函数等对象的名称。在C语言中,标识符只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。11.在C语言中整型常量有十进制、八进制和十进制三种表示方法。实型常量有小数形式和指数两种表示方法。12.C语言中语句的作用是向计算机系统发出操作命令,从而完成一定的操作任务。C语句可以分为:表达式语句、函数调用语句、控制语句、复合语句和空语句等五种类型。二、单项选择题)1.一个C语言的执行是从A(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束3(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束2.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符C(A)必须为字母(B)必须为下划线(C)必须为字母或下划线(D)可以是字母,数字和下划线中的任一种字符3.以下选项中属于C语言的数据类型是DA)复数型B)逻辑型C)集合型D)双精度型4.以下叙述正确的是C(A)在C程序中,main函数必须位于程序的最前面(B)C程序的每行中只能写一条语句(C)C语言本身没有输入输出语句(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误5.下列可以正确表示字符型常量的是BA)aB)'t'C)\n4D)297'6.下列形式的常数中,C程序不允许出现的是A。(A)±123(B).45(C)25.6e-2(D)4e37.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是B(A)7(B)8(C)6(D)28.以下叙述不正确的是D(A)在C程序中,逗号运算符的优先级最低(B)在C程序中,APH和aph是两个不同的变量(C)若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变(D)在C程序中,无论是整数还是实数,都能被准确无误地表示9.设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为D(A)float(B)char(C)int(D)double10.已知inti,a;执行语句i=(a=2*3,a*5),a+6;后,变量i的值是CA)6B)12C)305D)3611.在C语言中,要求运算数必须是整型的运算符是B(A)/(B)%(C)!=(D)++12.若变量已说明为int型,要给a,b,c输入数据,以下正确的输入语句是DA)scanf(%d%d%d,&a;&b;&c);B)scanf(%d%d%d,a,b,c);C)scanf(%D%D%D,&a,&b,&c)D)scanf(%d%d%d,&a,&b,&c);13.以下关于运算符优先顺序的描述中正确的是C(A)关系运算符算术运算符赋值运算符逻辑运算符(B)逻辑运算符关系运算符算术运算符赋值运算符(C)赋值运算符逻辑运算符关系运算符算术运算符(D)算术运算符关系运算符赋值运算符逻辑运算符14.设x=3,y=2,则表达式x*=y+8的值为C6(A)3(B)2(C)30(D)1015.对for(表达式1;;表达式3)可理解为BA)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式316.有数组定义:chararray[]=China;则数组array所占用的内存空间为AA)6BB)5BC)11BD)10B17.C语言规定,简单变量作实参时,它和对应形参之间的数据传递是BA)地址传递B)单向值传递C)由实参传递给形参,再由形参传回实参D)由用户指定传递方式18.如下程序段执行后的输出结果是c#includestdio.hvoidmain(){structabc{intx;7inty;}num[2]={{20,5},{6,7}};printf(%d\n,num[0].x/num[0].y*num[1].y);}A)0B)20C)28D)2419.为表示关系:X≥Y≥Z,应使用的C语言表达式是A(A)(X=Y)&&(Y=Z)(B)(X=Y)AND(Y=Z)(C)(X=Y=Z)(D)(X=Y)&(Y=Z)20.下列程序运行结果是C#includestdio.hvoidmain(){inttt(int);inti,a[0]={3,2,6,9,10,11,8,13,4,5};for(i=0;i10;i++)if(tt(a[i]==1)printf(%d,a[i]);}inttt(inty){intz=0;if(y%2==1)z=1;8returnz;}(A)261084(B)3269101181345(C)3911135(D)31113521.以下不正确的语句为B(A)if(xy);(B)if(x=y)&&(x!=0)x+=y;(C)if(x!=y)scanf(“%d”,&x);elsescanf(“%d”,&y);(D)if(xy){x++;y++;}22.下面程序段的运行结果是Ainta=1,b=2,c=2,t;while(abc){t=a;a=b;b=t;c--;}printf(“%d,%d,%d”,a,b,c);(A)1,2,0(B)2,1,0(C)1,2,1(D)2,1,123.以下能正确计算1*2*3*4*5*6*7*8*9*10的程序段是C(A)do{i=1;s=1;(B)do{i=1;s=0;s=s*i;s=s*i;9i++;i++;}while(i=10);}}while(i=10);(C)i=1;s=1;(D)i=1;s=0;do{s=s*i;do{s=s*i;i++;i++;}while(i=10);}while(i=10);24.若用数组名作函数调用的实参,传递给形参的是A(A)数组的首地址(B)数组第一个元素的值(C)数组中全部元素的值(D)数组元素的个数25.以下不正确的说法为D(A)在不同函数中可以使用相同名字的变量。(B)形式参数是局部变量10(C)在函数内定义的变量只在本函数范围内有效(D)在函数内的复合语句中定义的变量在本函数范围内有效26.下列程序的运行结果是:A#includestdio.hvoidmain(){intx=1,a=0,b=0;switch(x){case0:b++;break;case1:a++;break;case2:a++;b++;break;}printf(a=%d,b=%d\n,a,b);}(A)a=1,b=0(B)a=2,b=0(C)a=1,b=1(D)a=2,b=127.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是D(A)extern(B)register(C)auto11(D)static28.C语言规定,函数返回值的类型是由C(A)return语句中的表达式类型所决定(B)调用该函数时的主调函数类型所决定(C)在定义该函数时所指定的函数类型所决定(D)调用该函数时系统临时决定29.运行下面程序,从键盘输入:12345-1回车,运行结果:B#includestdio.hvoidmain(){intn,k=0;do{scanf(%d,&n);k+=n;}while(n!=-1);printf(k=%d,n=%d\n,k,n);}(A)k=15,n=-1(B)k=14,n=-1(C)k=15,n=5(D)k=14,n=5下列程序的运行结果是:1230.变量的指针,其含义是指该变量的B(A)值(B)地址(C)名(D)一个标志31.下列程序的运行结果是:A#includestdio.hvoidmain(){inti=1,j,k;j=i++;printf(j=%d,i=%d\n,j,i);k=++i;printf(k=%d,i=%d\n,k,i);}(A)j=1,i=2k=3,i=3(B)j=2,i=2k=3,i=3(C)j=1,i=1k=3,i=3(D)j=1,i=2k=3,i=2三、程序设计题1、求1-100中含5的所有数之和#includestdio.hintIs1(inti){while(i){if(i%10==5)returni;i/=10;}return0;}voidmain()13{inti,sum=0;for(i=1;i=100;i++)if(Is1(i)){printf(%d,,i);sum+=i;}printf(\n%d\n,sum);}2.编程:1+2+3+…+100#includestdio.hvoidmain(){intn=1,sum=0;while(n=100){sum+=n;n++;}printf(Sum=%d\n,sum);}3、编写一个程序以实现以下功能:子函数fun计算:m=1-2+3-4+5-6+7-8+9-10主函数中调用子函数并输出结果。方法一:#includestdio.h14intfun(intn){inti,sum=0,f=1;for(i=1;i=n;i++){sum+=(f*i);f=-f;}returnsum;}intmain(){intn=10;printf(%d\n,fun(n));}方法二、不用子函数main(){inti,sign=1,sum;sun=0;for(i=1;i=10;i++){sum+=sign*i;sign=-sign;}printf(sum=%d\n,sum);}4、编程求S=1!+2!+3!+4!+5!方法一、15#includestdio.hmain(){doubles,time();s=time(5);printf(s=%.2e\n,s);}doubletime(intm){doublet=1;intsum();inti;for(i=1;i=m;i++)t=t*sum(i);returnt;doublesum(intn){doubles;if(n==0‖n==1)s=1elses=s*s(n-1);returns;}方法二、longfact(intn){if(n==1)return1;elsereturnn*fact(n-1);}main(){inti=1;longs=0;16while(i=5){s+=fact(i);i=i+1;}printf(s=%ld\n,s);}5、输入三个整数x,y,z,请把这三个数由小到大输出。程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果xy则将x与y的值进行交换,然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小。程序源代码:ma
本文标题:C语言程序设计模拟试题1
链接地址:https://www.777doc.com/doc-4010615 .html