《2022年C语言期末模拟 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言期末模拟 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、习题一、选择题(1)设有 int x=11;则表达式(x+*1/3)的值是A)3 B)4 C)11 D)12(2)下列程序的输出结果是A)3 B)3.2 C)0 D)3.07 main()double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf(%d n,d*y);(3)下列程序执行后的输出结果是(小数点后只写一位)A)6 6 6.0 6.0 B)6 6 6.7 6.7 C)6 6 6.0 6.7 D)6 6 6.7 6.0 main()double d;float f;ling l;int i;i=f=1=d=20/3;printf(%d%ld%f%f
2、n,i,l,f,d);(4)设 int x=1,y=1;表达式(!x|y-)的值是A)0 B)1 C)2 D)-1(5)与 y=(x0?1:x0)y=1;B)if(x)else if(x0)y=1;else y=0;else if(x=0)if(x0)y=1;if(x0)y=1;else if(x=0)y=0;else y=-1;else y=-1;(6)以下循环体的执行次数是A)3 B)2 C)1 D)0 main()int i,j;for(i=0,j=1;i=j+1;i+=2,j-)printf(%d n,i);(7)以下叙述正确的是A)do-while 语句构成的循环不能用其它语句构成的
3、循环来代替。B)do-while 语句构成的循环只能用break 语句退出。C)用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环。D)用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环。(8)下列程序执行后的输出结果是A)G B)H C)I D)J main()int x=f;printf(%c n,A+(x-a+1);(9)执行下面的程序段后,变量 k 中的值为A)不定值B)33 C)30 D)10 int k=3,s2;s0=k;k=s1*10;(10)下列程序执行后的输出结果是A)6 B)7 C)8 D)9 void func(
4、int*a,int b)b0=*a+6;main()int a,b5;a=0;b0=3;func(&a,b);printf(%d n,b0);(11)下列程序执行后的输出结果是A)3 B)6 C)9 D)随机数main()int a33,*p,i;p=&a00;for(i=p;i2)/(b1)的值是A)0 B)2 C)4 D)8(15)下列程序执行后的输出结果是A)-32767 B)FFFE C)-1 D)-32768 main()char x=0 xFFFF;printf(%d n,x-);(16)设已有定义:char*st=how are you;下列程序段中正确的是A)char a11,
5、*p;strcpy(p=a+1,&st4);B)char a11;strcpy(+a,st);C)char a11;strcpy(a,st);D)char a,*p;strcpy(p=&a1,st+2);(17 下列程序执行后的输出结果是A)you&ne B)you C)me D)err mai()char arr24;strcpy(arr,you);strcpy(arr1,me)arr03=&;printf(%s n,arr);(18)下列程序执行后的输出结果是A)hello B)hel C)hlo D)hlm void func1(int i);void func2(int i);char
6、 st=hello,friend!;void func1(int i)printf(%c,sti);if(i3)i+=2;func2(i);void func2(int i)printf(%c,sti);if(inext=&b;D)(*p).next=q;struct node char data;struct node*next;a,b,*p=&a,*q=&b;data next data next(21)变量 a所占内存字节数是A)4 B)5 C)6 D)8 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 4 页 -union U char st4;int i;long l;
7、struct A int c;union U u;a;(22)执行下列程序时输入:123456789,输出结果是A)123,456,789 B)1,456,789 C)1,23,456,789 D)1,23,456 main()char s100;int c,i;scanf(%c,&c);scanf(%d,&i);scanf(%s,s);printf(%c,%d,%s n,c,i,s);二、填空(1)设有以下变量定义,并已赋确定的值char w;int x;float y;double z;则表达式:w*x+z-y 所求得的数据类型为-(2)下面程序的功能是:计算 1 到 10 之间奇数之和及
8、偶数之和,请填空。#include main()int a,b,c,i;a=c=0;for(i=0;i10;i+=2)a+=i;-;c+=b;printf(偶 数 之 和=%dn,a);printf(奇 数 之 和=%dn,c-11);(3)下面程序的功能是:输出 100 以内能被 3 整除且个位数为 6 的所有整数,请填空。#include main()int i,j;for(i=0;-;i+)j=i*10+6;if(-)continue;printf(%d,j);(4)下面程序的功能是:将字符数组 a 中下标值为偶数的元素从小到大排列,其它元素不变。请填空。#include#include
9、 main()char a=clanguage,t;int i,j,k;k=strlen(a);for(i=0;i=k-2;i+=2)for(j=i+2;j=k;-)if(-)t=ai;ai=aj;aj=t;puts(a);printf(n);(5)以下程序的运行结果是-#include main()int k=4,m=1,p;p=func(k,m);printf(%d,p);p=func(k,m);printf(%d n,p);func(int a,int b)static int m=0,i=2;i+=m+1;m=i+a+b;return m;(6)以下程序的功能是:将无符号八进制数字构成
10、的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请填空。#include main()char*p,s6;int n;p=s;gets(p);n=*p-0;while(-!=0)n=n*8+*p-0;printf(%d n,n);(7)函数 void fun(float*sn,int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n 通过形参传入,n的值大于等于 0。请填空。void fun(float*sn,int n)float s=0.0,w,f=-1.0;int i=0;for(i=0;i=n;i+)f=-*f;w=f/(2*i+1);
11、s+=w;-=s;三、程序设计:1:选取出 100 以上 1000 以内所有个位数字与十位数字之和被10 除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数CNT 以及这些素数值的和SUM。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 4 页 -2.简单迭代方法求方程:cos(x)-x=0 的一个实根。xn+1=cos(xn)3.求出 10005000 之间满足千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数CNT 4.字符串数组xx 中,以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx 中例:原文:dAe,BfC.(每行的宽度均小于80 个字符,含标点符号和空格)CCbbAA 结果:fedCBA.,bbCCAA 4.起泡法对十个数排序5.输入一组字符串,计算出单词的个数cnt 6.用递归方法将一个整数n 转换成字符串,例如输入483,应输出字符串“483”,n 的位数不确定,可以是任意位数的整数7.人围成一圈,从第一个人开始顺序报号1、2、3,凡报到 3 者退出圈子,找到最后留在圈子中的人原来的序号。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 4 页 -