C语言答案
- 格式:doc
- 大小:142.50 KB
- 文档页数:34
C语言模拟题答案一、选择题:1、下列哪一个选项不是结构化程序三种基本结构的共同特点:D:有分支结构2、设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是:B:2,0,33、若整型变量A、B、C、D中的值依次为:1、4、3、2。
则条件表达式D<B?A:C 的值为:A:14、表示数学中的关系x<y<z,在C语言中所对应的表达式是:B:(x < y) && (y < z)5、在C语言中,设x为int型变量,则执行以下语句后,x的值为x=10; x=x+- -x;:C:186、在C语言中,执行下面语句后,输出的结果是int x=10,y=3; printf("%d\n",y=x/y);C:37、在C语言中,假定所有变量均已正确说明,下列程序段运行后x的值是a=b=c=0;x=99;if(!a) x=9;else x=3;B:98、在C语言中,执行语句:for (i=1; i<4; i++);后,变量i的值是:B:49、设int k;则语句for(k=0;k=1;k++);和语句for(k=0;k==1;k++);执行的次数分别是:A:无限和010、执行语句printf("He question is in c:\\tools\book. exe" );其输出为:C:He question is in c:\toolook.exe11、函数float AAA(float x,int y){ float i,fc=1;while( y>0 ){fc *=x; y--;}return fc;}的功能是:A:求x的y次方12、对两个静态字符数组A和B进行如下初始化。
static char A[]="ABCDEF";static char B[]={'A','B','C','D','E','F'};则下列叙述正确的是:D:A数组长度比B数组长13、对于for(表达式1;;表达式3)可理解为:B:for(表达式1;1;表达式3)14、C语言中,FILE结构指针变量名stdin代表哪类文件。
D:标准输入15、下列循环体执行( )次k=70;while(k=0) k-=1;D:0次16、有以下程序#define P 3void F(int x){return(P*x*x);}main(){printf("%d\n",F(3+5));}程序运行后的输出结果是D:编译出错17、在一个源程序文件中定义的全局变量的有效范围为C:从定义处开始到该源程序文件结束18、有以下程序main(){int p[3]={11,12,13},i=0,j=0;while(i++<2) if(p[i]%2) j+=p[i];printf("%d\n",j);} 程序运行后的输出结果是A:1319、以下能正确定义一维数组的选项是:D:char a[5]="0123";20、与定义char c[]={"GOD"};不等价的是D:char c[3]={"GOD"};21、对于下面程序段,执行的结果是char c[5]={‘a’,’b’,’\0’,’c’,’\0’};printf(“%s”,c);B:ab22、设char Q='a', *p=&Q;下面说法中错误的是C:&p=&Q23、有以下程序main(){int a[]={1,2,3,4,5,6,7,8,9,0},*p;for(p=a;p<=a+9;p++)printf("%d,",*p);)程序运行后的输出结果是A:1,2,3,4,5,6,7,8,9,0,24、若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是C:&a,p,&*p25、设有语句:int a[10],*p =a;,则下面的语句中,不正确的是D:a=a+1;26、当int类型长度为2字节时,则类型unsigned int的值域范围为0至6553527、有如下程序:#include <stdio.h>int b;void f(){ int t2; t2=b*3; b=100; }void main(){ int a=2;b=4; f1();}叙述正确的是:D:a是局部变量,b是全局变量。
28、下面的for循环最多可执行________次。
for(x=0,y=0;(y!=99)&&(x<4);x++);A:4次29、下列判断char类型变量C1是否为数字的表达式中,哪个表达式最简单且正确。
B:(C1>='0')&&(C1<='9')30、若有以下的说明,则对初值中字符'a'的引用方式为________。
static struct{ char ch;double x;char t;}c[2][2]={{{'a',35,'b'},{'c',45,'d'},{'a',86, 'm'}}};D:c[0][0].ch二、判断题:1、在C程序中,注释部分从/*开始,到*/结束。
T2、switch语句中,case后面既可以跟常量,也可以跟已赋值的变量。
F3、一个C语言程序中包含有多个函数时,按书写顺序从上到下执行各函数。
F4、若一个函数的返回类型为void,则表示其没有返回值。
T5、student_name、_name、name8和name_8都是合法标识符。
T6、不对自动(auto)数组进行初始化,数值型数组隐含初值为0,字符数组隐含初值空字符'\0'。
F7、假设int型数组a的起始地址为2000,则元素a[3]的地址为:2000+4×2=2008。
F8、结构化程序设计认为一个"好"程序主要应该是:程序短而紧凑。
F9、如果知道整型变量a的地址是2000,可以直接用int *pa=2000; 给指针变量pa赋值,使其指向变量a。
F10、在C语言的if语句中,用作判断的表达式只能为逻辑表达式和关系表达式。
F三、综合应用题1、计算下面公式的值。
T=1/1!+1/2!+1/3!+……+1/m! 当m=10时的结果(按四舍五入保留3位小数)。
(注:所有变量用float数据类型定义!)答案:1.7182、求[10,2000]之间能被2或3或5整除的数之和。
改正程序中的错误(共3处错误)。
答案:1466295#include <stdio.h>void main(){int sum;int i;for(i=10;i<2000;i++)if(i%2==0 && i%3==0 && i%5==0)sum=sum+i;printf("sum=%d\n",sum);}3、/*下面程序的功能是:计算并输出500以内的最大的10个能被13或者17整除的自然数之和。
请改正程序中的错误,并运行,最后给出程序运行的正确结果。
(注:只有一处错误!)*/#include <stdio.h>void main(){int total=0, mc=1, k=500;int pm[10],count=0;while( (k>=2) && mc<=10 ){if ((k%13==0) || (k%17==0)){pm[mc] = k;mc++;}k--;}for( k=1;k<=10;k++ )total += pm[k-1];printf(" %d\n",total);}答案:46224、下列程序的功能是:求出以下分数序列的前30项之和,2/1,3/2,5/3,8/5,13/8,21/13,……请改正程序中的错误,并运行修改后程序,给出程序结果(按四舍五入保留6位小数)。
结果:48.840601。
(有3处错误)#include <conio.h>#include <stdio.h>main(){ int k;double s;long a,b,c;clrscr();s=0.0; a=2; b=1;for(k=1;k<=30;k++)s=s+a/b;c=a; a=a+b; b=c;printf("\n 结果: %lf\n", s);}5、/*求200到1000之间的双胞胎数的对数。
双胞胎数:两素数差为2称为双胞胎数。
例如227和229是一对双胞胎数,它们都是素数且差为2。
*/#include <stdio.h>int prime(int x){int k;for(k=2;k<x;k++)if(__________) break;if(k==x) return 1;else return 0;}void main( ){ int a,b,n=0;int prime(int x);for(a=200;a<=998;a++){if(prime(a)==1){ b=a+2;if(__________) n++;}}printf(" %d \n",n);}答案:20C语言程序设计题库及答案1、计算下面公式的值。
T=1/1!+1/2!+1/3!+……+1/m! 当m=5时的结果(按四舍五入保留3位小数)。
(注:所有变量用float数据类型定义!)答案:1.717#include <stdio.h>float jc(float x){float jc=1,i;for(i=1;i<=x;i++)jc=jc*i;return jc;}void main(){float jc(float x);float m,t=0,i;printf("Please Input:\n");scanf("%f",&m);for(i=1;i<=m;i++)t=t+1/jc(i);printf("t=%.3f\n",t);}2、程序填空:用*号输出字母C的图案。
#include "stdio.h"#include "conio.h"main(){_printf(" ***\n");__printf(" *\n");printf(" *\n");printf(" ***\n");getch();}3、8232和9678,它们的个、十、百、千各位数字之和是15的倍数,8+2+3+2=15,9+6+7+8=30。