您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页C语言程序设计模拟试题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) \

4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。

A) 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 a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”; D) char a[5]={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;

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 str1[10] = “ABCDE”, str2[10] = “xyz”;

则执行语句 printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是()

A) 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 s[5]={\"ABCD\; B) char s[5]; s=\"ABCD\"; C) char *s;s=\"ABCDEF\"; D) char *s=\"ABCD\";

14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为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(“%d\\n”, fun(a,b)/m); }

A) 1 B) 2 C) 3 D) 10

二、 判断(每空1分,共10分)

1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。 ( )

2、C语言规定:标识符应由字母、下划线和数字组成,且可以是上述字符的任意组合,其长度也是任意的。( ) 3、数组在定义时没有必要指定数组的长度,其长度可以在程序中根据元素个数再决定。( )

4、if语句有多种使用方法,其中if子句和else 子句也都可以单独使用。 ( ) 5、for语句作为循环控制语句时,从语法上将其括号内各个表达式都可缺省,但表达式内的分号却不可以却省。( ) 6、字符串是C语言中一种基本数据类型,字符串总是以‘\\n’作为结束标志。( )

7、在C语言中,程序的最小编译单位是源文件,最小功能单位是函数。( ) 8、在定义指针型变量时指定的基类型为该指针变量所能指向的变量类型。( ) 9、结构体与数组一样,属于构造类型数据,且在结构体中的各个成员的类型也可不同。( )

10、在发生函数调用时,主~被调函数中的参数可以是简单变量,也可以是数组名,当采用数组名作为参数时其数据传递方式为单向值传递。( )

三、 程序填空(每小题2分,共12分)

1、以下程序可求出所有水仙花数(指3位正整数中各位数字立方和等于该数本身,如153=13+53+33),请填空。 main( )

{ int x, y ,z, m;

printf(“shui xian huan shu :\\n”); for(m=100;m<1000;m++) { x=m/100; y= (1) ; z=m%10;

if( (2) )

printf(“%6d”,m ) ; } }

2、输入一个字符,如果是大写字母,则把其变成小写字母;如果是小写字母,则变成大写字母;其它字符不变。请补充()内缺省的内容。 #include main( )

{ char ch; ch=getchar( );

if (___(3)____) { ch=ch+32; putchar(ch); }

else if(__(4)___) { ch=ch-32; putchar(ch);} else putchar(ch); }

3、以下程序使用递归法求n!, 请填空。

main( ) { int n, y;

printf(“input a integer number”); scanf(“%d”,&n);

y=(5); printf(“%d! = %6d”, n, y ); }

int fac(int n) { int f;

if(n<0) {printf(“n<0” data error); f=-1;} else if(n==0||n==1) f=1;

else f=(6) ;

return( f ); }

四、 读程序写出结果(本大题共5道小题,每小题4分,共20分) 1、写出下面程序的执行结果 #include

main( )

{ int a,b,x;

x=(a=3,b=a--);

printf(“x=%d,a=%d,b=%d”,x,a,b); } 2、以下程序的运行结果是 #include main( )

{ int a = 2, b = 3, c ;

c = a ;

if ( a>b ) c = 1 ;

else if ( a == b ) c = 0 ; else c = -1 ;

printf ( “%d\\n”, c ) ; } 3、以下程序的运行结果是 #include

main()

{ int i,j,k; for(i=1;i<4;i++)

{ for(j=1;j<4-i;j++) printf(\" \"); for(k=1;k<=2*i-1;k++) printf(\"%c\ printf(\"\\n\");} } 4、以下程序的运行结果是 main( )

{ int a[5][5],i, j ; for( i=0;i<5;i++) { a[i][0] =1; a[i][i] =1; } for( i=2; i<5; i++ )

for(j=1; ja[i][j] =a[i-1][j-1] + a[i-1][j]; for(i=0; i<5; i++) { for( j=1; j<=i; j++) printf(“%5d”,a[i][j]);

printf(“\\n”);} }

5、以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为 #include #include int func(char str[]) { int num =0;

while(*(str+num)!='\\0') num++; return(num); } main( )

{ char str[10],*p=str; gets(p);

printf(\"%d\\n\

五、 编程题(本大题28分,第一题8分,第二题9分,第三题11分) 1、请编程实现下列分段函数的值:

(1-x) 1/ 2 (x≤0) y= 1-x (x≤1) (1-x) (x>1)

2、百钱百鸡问题:用100元钱买100只鸡,公鸡每只5元,母鸡每只3元,小鸡每3只1元,要求每种鸡至少买1只,试编程求各种鸡各买多少只。 3、输入20位学生的成绩,分别用函数实现:

(1)将20位学生的成绩按从高到低进行排名。

(2)求所有成绩的平均分,并输出所有成绩中比平均分低的分数。

2

参:

一、 单项选择题

1、D 2、C 3、B 4、B 5、A 6、C 7、A 8、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 三、程序填空题 1、(1) m/10%10 (2) m==x*x*x+y*y*y+z*z*z 2、(3) ch>’A’&&ch<’Z’ (4)ch>’a’&&ch<’z’ 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\ if(x<=0) y=sqrt(1-x); else if(x<=1) y=1-x; else y=(1-x)*(1-x); printf(\"y=%f\\n\} 2、

#include void main() {

int x,y,z;/*分别代表所买的公鸡数,母鸡数,小鸡数*/

9、C 10、D

9、T 10、F

for(x=1;x<99;x++) for(y=1;y<99;y++) for(z=1;z<99;z++) if((x*5+y*3+z/3==100)&&(z%3==0)&&(x+y+z==100)) printf(\"公鸡数为%d只,母鸡数为%d只,小鸡数为%d只\\n\} 3、

#include void sort(int b[20]) {

int i,j; int temp;

for(i=0;i<20;i++) for(j=0;j<20;j++) { if(b[i]for(i=0;i<20;i++) printf(\"%d \ printf(\"\\n\"); }

double ave(int c[20]) {

double sum=0.0; int i;

for(i=0;i<20;i++) sum=sum+c[i]; sum=sum/20; return sum; }

void main() {

int i; int a[20];

double pingjun;

printf(\"Please input 20 students score!\\n\"); for(i=0;i<20;i++) { printf(\"Please input %d student score:\ scanf(\"%d\ }

for(i=0;i<20;i++) printf(\"%d \printf(\"\\n\"); sort(a);

pingjun=ave(a);

printf(\"平均分为:%f\\n\printf(\"比平均分低的有:\\n\"); for(i=0;i<20;i++) if(a[i]}

\

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务