c语言综合练习题及答案

发布时间 : 星期日 文章c语言综合练习题及答案更新完毕开始阅读

}

6. #include void main(void)

{ static char a[]=\char *p1,*p2; int k;

p1=a; p2=b; for(k=0;k<=7;k++)

if (*(p1+k)==*(p2+k)) printf(\ printf(\ }

五.编程题(共30分)

1.有一函数,其函数关系如下,试编程求对应于每一自变量的函数值。

x2 (x<0)

y = -0.5x+10 (0?x<10)

x-2.若有如下公式:

x (x?10)

?26?

112 +

122 +

132+。。。。。。。+

1n2

试根据上述公式编程计算? 的近似值

(精确到10)。

3.编一程序,首先将一个包含10个数的数组按照升序排列,然后将从一指定位 置m开始的n个数按照逆序重新排列,并将新生成的相互组输出。要求使用指 针控制方法实现上述功能。

-6

模拟试题四

一、选择题(本大题30分,每小题2分) 1.在C语言中,反斜杠符是 。 A)\\n

B)\\t

C)\\v

D)\\ \\

2.表达式 18/4*sqrt(4.0)/8值的数据类型为 。

A)int B)float C)double D)不确定

3.设整型变量a值为9,则下列表达式中使b的值不为4的表达式 。 A)b=a/2 B)b=a%2 C)b=8-(3,a-5) D)b=a>5?4:2

4.已知变量C1为字符型变量,下面不正确的赋值语句是: 。 A)C1 = ?abc? B)C1= ?\\0? C)C1 = ?7?+ ?9? D)C1= 7 + 9

5.以下程序的输出结果是: 。(注:▂表示空格) main( )

{ printf(“\\n*s1=%8s*”, “china”); printf(“\\n*s2=%-5s*”, “chi”) ; }

A)*s1=china▂ ▂ ▂* B)*s1=china▂ ▂ ▂* *s2=chi* *s2=chi▂ ▂*

C)*s1=▂ ▂ ▂china* D)*s1=▂ ▂ ▂china*

*s2=▂ ▂chi * *s2=chi▂ ▂*

6.设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是: 。 A)‘a’+ ?b? B)a<=b

C)a||b+c&&b-c D)!( (a

7.已知 int x=10,y=20,z=30;以下语句执行后变量x、y、z的值分别为: 。 if (x>y||xz)

{ z=x; x=y; y=z;}

A)x=10, y=20, z=30 B)x=20, y=30, z=30 C)x=20, y=30, z=10 D)x=20, y=30, z=20

8.下列字符串赋值语句中,不能正确把字符串C program赋给数组的语句是: 。 A)char a1[]={?C?, ? ?, ?p?, ?r?, ?o?, ?g?, ?r?, ?a?, ?m?} B)char a2[10]; strcpy(a2, “C program”); C)char a3[10]; a3= “C program”; D)char a4[10]={ “C program”}

9.用scanf函数输入一个字符串到数组str中,下面正确的语句是: 。 A)scanf(“%s”,&str); B)scanf(“%c”,&str[10]); C)scanf(“%s”, str) ; D)scanf(“%s”,str[10]); 10.C语言规定,C程序的各函数之间 。 A)允许嵌套调用,但不允许嵌套定义; B)不允许嵌套调用,但允许嵌套定义; C)不允许嵌套调用,也不允许嵌套定义;

D)允许嵌套调用,也允许嵌套定义;。 11.若有如下定义和语句:

char s[12]= “a_book!”; printf(“%d”,strlen(s) ); 则输出结果是: 。

A)12 B)10 C)7 D)6 12.下面程序的运行结果是: 。

#include main( )

{ int y=10;

do { y--; } while(--y) ; printf(“%d\\n”,y--); }

A)-1 B)1 C)8 D)0 13.下面函数调用语句中实参的个数为: 。

func((exp1,exp2),(exp3,exp4,exp5))

A) 1 B) 2 C) 4 D) 5

14.有如下语句 int a=10,b=20,*p1,*p2; p1=&a; p2=&b; 如图1所示;若实现如图2所示的存储结构,可选用的赋值语句是: 。

p1 p2 p1 p2

a b a b 10 20 10 20 图1 图2

A)*p1=*p2 B)p1=p2 C)p1=*p2 D)*p1=p2 15.以下对结构体类型变量的定义中不正确的是 。

A) #define STUDENT struct student B) struct student

STUDENT { int num; { int num; float age;

float age; }std1; }std1;

C) struct D) struct { int num; { int num;

float age; float age; } student; }std1; struct student std1; 二、判断题(本大题10分,每小题1分)-

1.在每个C文件中都必须并且只能有一个main函数。( )

2. 在C语言中,整型数据与实型数据在任何情况下都可以通用。( ) 3. 在C语言程序中,happy是正确的标识符。( )

4.在if语句中,if子句与else子句都可以单独使用,构成了if语句的两种缺省形式。( ) 5. C语言规定,简单变量做实参时,与其对应的形参之间是双向的值传递。( ) 6.数组在定义时要求指定数组类型,数组名及数组长度,其中表示数组长度的表达式可以是任意类型的常量表达式。( ) 7.在发生函数调用时,主~被调函数中的参数可以是简单变量,也可以是数组名,当采用数

组名作为参数时其数据传递方式为单向值传递。( )

8.C语言的一个重要特点是能够直接处理物理地址,其指针类型数据就是用来存放变量地址的。( ) 9.字符串是C语言中一种基本数据类型,字符串总是以‘\\n’作为结束标志。( ) 10.C程序的三种结构化程序设计方法分别顺序结构、选择结构和循环结构,由这三种结构组成的程序可以解决任何复杂的问题。( ) 三、程序填空题(本大题12分,每小题2分)

1.下面程序的功能是利用函数调用求两整数的最大公约数和最小公倍数,请填空。 main( )

{ int a, b ,c,d;

scanf(“%d, %d”, &a, &b ) ; c = gongyue( a, b ) ; (1) ; printf(“gongyue=%d,gongbei=%d\\n”, c,d ) ; } gongyue( int num1, int num2 ) { int temp, x, y ; if (__ (2) __)

{ temp=num1; num1=num2 ; num2=temp ; } x=num1 ; y=num2 ; while(__ (3) _____) { temp=x%y ; x=y ; y = temp ; } return (y) ; }

2.下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。请填空。

main( )

{ int a[10],b[10], I; for(I=0;I<10; I++) scanf(“%d”,&a[I]) ;

for(I=1; (4) ; I++) b[I]= (5) ; for(I=1;I<10;I++) { printf(“=”,b[I]); if ( (6) ) printf(“\\n”); } }

四、写出下面程序的执行结果(本大题24分,每小题4分) 1.main( ) { int i;

for(i=1;i<=5;i++)

联系合同范文客服:xxxxx#qq.com(#替换为@)