您好,欢迎来到刀刀网。
搜索
您的当前位置:首页C语言试卷(含答案)

C语言试卷(含答案)

来源:刀刀网
一、单项选择题每小题2分,40分)

1、sizeof(float)是( )

A. 一个双精度型表达式

B. 一个整型表达式

C. 一种函数调用

D. 一个不合法的表达式

2设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:

scanf("i=%d,f=%f",&i,&f);

为了把100和765.12分别赋给i和f,则正确的输入为()。  

A. 100 765.12

B. i=100,f=765.12

C. 100<回车> 765.12

D. x=100 y=765.12

3#include

void main()

{

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

    int x=10,y=20;

    if(a

if(b!=0)

if(!x)  

         y=1;

    else if(x)

        y=0; 

     y=-1; 

   printf("%d",y);

 }

上面的C程序的输出结果是( )。   

A. 20

B. 1

C. 0

D. -1

4C语言中,while和do…while循环的主要区别是( )。 

A. do…while的循环体至少无条件执行一次

B. while的循环控制条件比do…while的循环控制条件严格

C. do…while允许从外部转到循环体内

D. do…while的循环体不能是复合语句

5执行下面的C程序段后,输出结果是( )。

int a=5;

while( a- -);

printf( "%d",a) ;   

A. 54321

B. 4321

C. 0

D. -1

6在C语言中,( )是在所有函数外部声明的。   

A. 全局变量

B. 局部变量

C. 形参

D.实参

7分析下面的C程序:

#include

void main()

{

int num=0;

while(num<=2){

num++;

printf("%d ",num);

}

}

输出结果是( )。 

A. 1 2 3

B. 0 1 2

C. 2 3

D. 1 2

8下面的C语言代码段的输出结果是()。

int j;

for(j=1; j<10; j+=2)

printf("%d ",j);   

A. 1 2 3 4 5 6 7 8 9

B. 2 4 6 8

C. 1 3 5 7 9

D. 1 2 4 6 8

9在C语言中,表达式:10!=9 的值是( )。   

A. true

B. 非零值

C. 0

D. 1

10分析下面的C代码段:

char str1[15] = "Sea View";

char str2[15] = "Sea Breeze";

strcpy(str1,str2);

printf("%s\\n",str1);

则输出结果是( )。    

A. Sea View

B. Sea Breeze

C. Sea View Sea Breeze

D. Sea Breeze Sea View

10、若w=1,x=2,y=3,z=4,则条件表达式w )。  

A. 4

B. 3

C. 2

D. 1

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

A. int

B. float

C. double

D. 不确定

12、在C语言中,不正确的int类型的常数是(  )。  

A. 32768   

B. 0   

C. 037   

D. 0xAF

13、语句:printf("%d",(a=2)&&(b= -2);的输出结果是(  )。 

A. 无输出  

B. 结果不确定   

C. -1  

D. 1

14、下列描述中的是(  )。 

A. 字符型数组中可以存放字符串

B. 可以对字符型数组进行整体输入、输出

C. 可以对整型数组进行整体输入、输出

D. 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

15、以下选项中作为C 语言合法常量的是( )。

A 'cd'

B. 0.1e+6

C. "\\a"

D. '\\011'

16以下叙述中错误的是( )。

A用户定义的函数中可以没有return 语句

B用户定义的函数中可以有多个return 语句,以便可以调用一次返回多个函数值

C用户定义的函数中若没有return 语句,则应当定义函数为void 类型

D函数的return 语句中可以没有表达式

17、若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m 数组元素的引用中错误的是

( )。

Am[--i]

B.m[2*2]

C.m[m[0]]

D.m[m[i]]

18、已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下正确判断出kk中的值为大写字母的表达式是

A.kk>='A'&&kk<='Z'

B.!(kk>='A'‖kk<='Z')

C.(kk+32)>='a'&&(kk+32)<='z'

D.isalpha(kk)&&(kk<91)

19、若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是

A函数的实参和其对应的形参共占同一存储单元

B形参只是形式上的存在,不占用具体存储单元

C同名的实参和形参占同一存储单元

D.函数的形参和实参分别占用不同的存储单元

20、以下叙述中的是

A改变函数形参的值,不会改变对应实参的值

B函数可以返回地址值

C.可以给指针变量赋一个整数作为地址值

D当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL

21、以下描述正确的是( )。

A.C程序的执行是从main函数开始,到本程序的最后一个函数结束

B.C程序的执行是从第一个函数开始,到本程序的最后一个函数结束

C.C程序的执行是从main函数开始,到本程序的main函数结束

D.C程序的执行是从第一个函数开始,到本程序的main函数结束

二、将下列程序补充完整。(每空2.5分,共30分)

1.输入三角形的三条边a,b,c,求三角形的面积。

#include <math.h>

#include <stdio.h>

void main( )

{ float a,b,c,d,t,s;

printf(“请输入三角形的三条边:”);

scanf(“%f,%f,%f”,&a,&b,&c);

if ( 1 )

printf(“%f%f%f不能构成三角形!”, a,b,c);

else {t=( 2 )/2;

s=sqr(t*(t-a)*(t-b)*(t-c));

printf(“a=%7.2f,b=%7.2f,c=%7.2f,area=%7.2f\\n”, a,b,c,s);}

}

(1) ____a+b<=c&&a+c<=b&&b+c<=a______________________

(2) ____a+b+c_______________________________________

2.输入两个整数,n1,n2(要求n1

#include <stdio.h>

void main()

{int n1,n2,j=0,n=0;

printf(“\\n请输入两个数:”);

scanf ( ( 3 ) );

if(n1>n2){ ( 4 ) }

for(j=n1;j<=n2,j++)

if ( 5 ) n++;

printf(“a=%5d,b=%5d,n=%5d\\n”n1,n2,n);}

(3)______"%d %d", &n1, &n2___

(4) _____printf("输出的值非法!enter任意键退出\\n");getch();exit(0);___

(5)_____ j%3==0__________________________________

3.输入两个整数,n1,n2(要求n1

#include <math.h>

#include <stdio.h>

int prime (int x)

{ int k;

for ( 6 )

if (x%k==0) return(0);

return(1)

}

void main()

{int a,b,j,n=0;

printf(“\\n请输入两个数:”);

scanf(“%d,%d”,&a,&b);

if(a>b){ (7) }

for(j=a;j<=b,j++)

if( (8) ) n++;

printf(“a=%4d,b=%4d,n=%4d\\n”a,b,n);}

(6) _k=2;k<=x-1;k++

(7) _printf("输出的值非法!enter任意键退出\\n");getch();exit(0);

(8) prime(j)___________________________________ __

4.编写程序,输入n个整数(n由键盘输入),统计其中正数、负数和零的个数。

#include <stdio.h>

void main( )

{int x,n,k,k1=0,k2=0,k3=0;

printf(“input n=:”);

9

for(k=0;k

{scanf(“%d”,&x);

if (x<0)k1++;

10 ) ;

else k3++;

printf(“k1=%4d,k2=%4d,k3=%4d\\n”,k1,k2,k3)

}}

(9)scanf (" %d", &n);

(10)else if (x==0) k2++;

5.设计一个程序完成以下功能:若从键盘输入英文字母,则原样输出;输入其他字符不理会,直到输入Q键结束.

#include <stdio.h>

void main( )

{ char ch;

do{ch=getchar();

if ( (11) )break;

else if( (12) )putchar(ch);

}while(1);

}

(11) ch=='q' || ch=='Q'

(12) ch>='a'&& ch<='z' || ch>='A' && ch<='Z'

三、编程题(从下面的试题中选择其中一题上机完成,两题均作答的,按其中一题给分,30分)

1.编写程序,将将矩阵 9 7 5 倒置为 9 3 4

3 1 2 7 1 6

4 6 8 5 2 8

2.求元素个数为10的一维数组元素中的最大值最小值和平均值。

3.编写函数:输入两个正整数m,n,求它们的最大公约数和最小公倍数。

编程题1:

/*

file name: code1.c

description:编写程序,将将矩阵 9 7 5 倒置为 9 3 4

3 1 2 7 1 6

4 6 8 5 2 8

date: 2012-12-26 by fxk

*/

#include

int main (void)

{

int i=0, j=0, a[3][3]={{9,7,5},{3,1,2},{4,6,8}}, b[3][3]={0};

/*输出Arr a 并赋值*/

printf ("array a:\\n");

for(i=0; i<3; i++)

{

for(j=0; j<3; j++)

{

printf ("%d\", a[i][j]);

b[j][i] = a[i][j];

}

putchar('\\n');

}

putchar('\\n');

/*输出Arr b:*/

printf ("array b:\\n");

for(i=0; i<3; i++)

{

for(j=0; j<3; j++)

{

printf("%d\", b[i][j]);

}

putchar('\\n');

}

return 0;

}

编程题2:

/*

file name: code2.c

description: 求元素个数为10的一维数组元素中的最大值、最小值和平均值

date: 2012-12-26 by fxk

*/

#include

#define N 10

int max_date (int arr[N]);

int min_date (int arr[N]);

float avg_date (int arr[N]);

int main (void)

{

int arr[10] = {1,2,3,4,5,6,7,8,9,10};

int max = 0, min = 0;

float avg = 0;

/*求最大值并输出*/

max = max_date (arr);

printf ("max=%d\\n", max);

/*求最小值并输出*/

min = min_date (arr);

printf ("min=%d\\n", min);

/*求平均值并输出*/

avg = avg_date (arr);

printf ("avg=%.2f\\n", avg);

return 0;

}

int max_date (int arr[N])

{

int m, i;

m = arr[0];

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

{

if (m < arr[i])

{

m = arr[i];

}

}

return m;

}

int min_date (int arr[N])

{

int m, i;

m = arr[0];

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

{

if (m > arr[i])

{

m = arr[i];

}

}

return m;

}

float avg_date (int arr[N])

{

int i = 0;

float avg = 0, sum = 0;

for (i=0; i

{

sum += arr[i];

}

avg = sum / N;

return avg;

}

编程题3:

/*

file name: code3.c

description: 输入两个正整数m,n,求它们的最大公约数和最小公倍数

date: 2012-12-26 by fxk

*/

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

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

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

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