《C语言程序设计模拟试题1附答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计模拟试题1附答案.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计模拟试题1附答案 C语言程序设计模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) r B) n C) b D) t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, +a);的运行结果为()。 A
2、) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=xff B) ch=ff C) ch= ff D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a5=0,1,2,3,4,5; B) int a5=”012345”; C) char a =”012345”;D) char a5=0,1,2,3,4,5; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0;
3、8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 x = 9; while (x 7) printf(“*”); x- -; A) * B) * C) * D) * 10、设char str110 = “ABCDE”, str210 = “xyz”; 则执行语句printf(“%d”, strlen(strcpy(str1, str2); 后的输出结果是() A)
4、9 B) 8 C) 5 D) 3 11、若用数组名作为函数调用的实参,则传递给形参的是() A) 数组的首地址B) 数组第一个元素的值 C) 数组中全部元素的值 D) 数组元素的个数 12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为() A)void B)double C)int D)char 13、下面不能正确进行字符串赋值操作的语句是( ) A) char s5=ABCD;B) char s5; s=ABCD; C) char *s;s=ABCDEF; D) char *s=ABCD; 14、设有说明int s5=1,3,5,7,9; int *p=s; 则下列表达式中值
5、为3的是 ( ) A)+p B)+(*p) C) *(+p) D) *(p+=2) 15、下面程序的输出结果是() int m=13; int fun( int x, int y) int m=3; return( x*y-m); main( ) int a=7,b=5; printf(“%dn”, fun(a,b)/m); A) 1 B) 2 C) 3 D) 10 二、判断(每空1分,共10分) 1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。() 2、C语言规定:标识符应由字母、下划线和数字组成,且可以是上述字符的任意组合,其长度也是任意的。 () 3、数组在定义时
6、没有必要指定数组的长度,其长度可以在程序中根据元素个数再决定。() 4、if语句有多种使用方法,其中if子句和else 子句也都可以单独使用。() 5、for语句作为循环控制语句时,从语法上将其括号内各个表达式都可缺省,但表达式内的分号却不可以却省。 () 6、字符串是C语言中一种基本数据类型,字符串总是以n作为结束标志。() 7、在C语言中,程序的最小编译单位是源文件,最小功能单位是函数。() 8、在定义指针型变量时指定的基类型为该指针变量所能指向的变量类型。() 9、结构体与数组一样,属于构造类型数据,且在结构体中的各个成员的类型也可不同。() 10、在发生函数调用时,主被调函数中的参数可
7、以是简单变量,也可以是数组名,当采用数组名作为参数时其数据传递方式为单向值传递。() 三、程序填空(每小题2分,共12分) 1、以下程序可求出所有水仙花数(指3位正整数中各位数字立方和等于该数本身,如 153=13+53+33),请填空。 main( ) int x, y ,z, m; printf(“shui xian huan shu :n”); for(m=100;mb ) c = 1 ; else if ( a = b ) c = 0 ; else c = -1 ; printf ( “%dn”, c ) ; 3、以下程序的运行结果是 #include main() int i,j,k
8、; for(i=1;i1) 2、百钱百鸡问题:用100元钱买100只鸡,公鸡每只5元,母鸡每只3元,小鸡每3只1元,要求每种鸡至少买1只,试编程求各种鸡各买多少只。 3、输入20位学生的成绩,分别用函数实现: (1)将20位学生的成绩按从高到低进行排名。 (2)求所有成绩的平均分,并输出所有成绩中比平均分低的分数。 参考答案: 一、单项选择题 1、D 2、C 3、B 4、B 5、A 6、C 7、A 8、D 9、C 10、D 11、A 12、A 13、A 14、B 15、B 二、判断题 1、T 2、F 3、F 4、F 5、T 6、F 7、T 8、T 9、T 10、F 三、程序填空题 1、(1)
9、m/10%10 (2) m=x*x*x+y*y*y+z*z*z 2、(3) chA&cha&chz 3、(5) fac(n) (6)n*fac(n-1) 四、读程序写结果 1、x=3,a=2,b=3 2、-1 3、 A BBB CCCCC 4、 1 2 1 3 3 1 4 6 4 1 5、5 五、编程题 1、 #include #include void main() int x; double y; printf(Please input x value:); scanf(%d,&x); if(x=0) y=sqrt(1-x); else if(x=1) y=1-x; else y=(1-x
10、)*(1-x); printf(y=%fn,y); 2、 #include void main() int x,y,z;/*分别代表所买的公鸡数,母鸡数,小鸡数*/ for(x=1;x99;x+) for(y=1;y99;y+) for(z=1;z99;z+) if(x*5+y*3+z/3=100)&(z%3=0)&(x+y+z=100) printf(公鸡数为%d只,母鸡数为%d只,小鸡数为%d只n,x,y,z); 3、 #include void sort(int b20) int i,j; int temp; for(i=0;i20;i+) for(j=0;j20;j+) if(bibj
11、) temp=bi;bi=bj;bj=temp; for(i=0;i20;i+) printf(%d ,bi); printf(n); double ave(int c20) double sum=0.0; int i; for(i=0;i20;i+) sum=sum+ci; sum=sum/20; return sum; void main() int i; int a20; double pingjun; printf(Please input 20 students score!n); for(i=0;i20;i+) printf(Please input %d student score:,i+1); scanf(%d,&ai); for(i=0;i20;i+) printf(%d ,ai); printf(n); sort(a); pingjun=ave(a); printf(平均分为:%fn,pingjun); printf(比平均分低的有:n); for(i=0;i20;i+) if(ai printf(%d ,ai); printf(n);