搜档网
当前位置:搜档网 › c语言程序设计复习题

c语言程序设计复习题

c语言程序设计复习题
c语言程序设计复习题

C语言程序设计复习题

第一章C语言概述

一、选择题:

1、一个C程序的执行是从(A)。

A本程序的main函数开始,到main函数结束

B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C本程序的main函数开始,到本程序文件的最后一个函数结束

D本程序文件的第一个函数开始,到本程序main函数结束

2、在C语言中,每个语句必须以(D)结束。

A.回车符

B.冒号

C.逗号

D.分号

3、C语言规定:在一个源程序中,main函数的位置(C)。

A.必须在最开始

B.必须在系统调用的库函数的后面

C.可以任意

D.必须在最后

4、一个C语言程序是由(B)。

A.一个主程序和若干子程序组成

B.函数组成

C.若干过程组成

D.若干子程序组成

5、下列说法中错误的是(D)。

A.主函数可以分为两个部分:主函数说明部分和主函数体

B.主函数可以调用任何非主函数的其他函数

C.任何非主函数可以调用其他任何非主函数

D.程序可以从任何非主函数开始执行

6、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将(C)。

A.生成可执行目标文件

B.生成目标文件

C.输出运行结果

D.自动保存源文件

二、填空题:

1、C语言只有(32)个关键字和(9)种控制语句。

2、每个源程序有且只有一个(main)函数,系统总是从该函数开始执行C语言程序。

3、C语言程序的注释可以出现在程序中的任何地方,它总是以(\*)符号作为开始标记,以(*/)符号作为结束标记。

4、C语言中,输入操作是由库函数(scanf)完成的,输出操作是由库函数(printf)完成的。

5、系统默认的C语言源程序文件的扩展名是(.c),经过编译后生成的目标文件的扩展名是(.obj),经过连接后生成的可执行文件的扩展名是(.exe)。

6、C语言的标识符只能由(字母、数字和下划线)三种字符组成。

第三章数据类型、运算符和表达式

一、选择题:

1、以下选项中,不正确的C语言浮点型常量是(C)。

A.160.

B.0.12

C.2e4.2

D.0.0

2、以下选项中,(D)是不正确的C语言字符型常量。

A.'a'

B.'\x41'

C.'\101'

D."a"

3、在C语言中,字符型数据在计算机内存中,以字符的(C)形式存储。

A.原码

B.反码

C.ASCII码

D.BCD码

4、若x、i、j和k都是int型变量,则计算x=(i=4,j=16,k=32);

表达式后,x的值是(C)。

A.4

B.16

C.32

D.52

5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。

A.算术运算、赋值运算、关系运算

B.算术运算、关系运算、赋值运算

C.关系运算、赋值运算、算术运算

D.关系运算、算术运算、赋值运算

6、若有数学代数式3ae÷bc,则不正确的C语言表达式是(C)。

A.a/b/c*e*3

B.3*a*e/b/c

C.3*a*e/b*c

D.a*e/c/b*3

7、表达式!x||a==b等效于(D)。

A.!((x||a)==b)

B. (!x||a)==b

C.!(x||(a==b))

D.(!x)||(a==b)

8、设整型变量m,n,a,b,c,d均为1,执行(m=a>b)&&(n=c>d)后,m,n的值是(A)。

A.0,0

B.0,1

C.1,0

D.1,1

9、设有语句inta=3;,则执行了语句a+=a-=a*=a;后,变量a的值是(B)。

A.3

B.0

C.9

D.-12

10、在以下一组运算符中,优先级最低的运算符是(D)。

A.*

B.!=

C.+

D.=

11、设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是(B)。

A.6

B.12

C.15

D.表达式出错

12、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(C)。

A.1

B.2

C.2.0

D.2.5

13、设a=1,b=2,c=3,d=4,则表达式:a

A.4

B.3

C.2

D.1

14、设a为整型变量,不能正确表达数学关系:10

A.10

B.a==11||a==12||a==13||a==14

C.a>10&&a<15

D.!(a<=10)&&!(a>=15)

15、设f是实型变量,下列表达式中不是逗号表达式的是(D)。

A.f=3.2, 1.0

B.f>0,f<10

C.f=2.0, f>0

D.f=(3.2,1.0)

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

A.int

B.float

C.double

D.不确定

17、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句

C2=’A’+’6’-‘3’;后c2中的值是(A)。

A.D

B.68

C.不确定的值

D.C

18、以下用户标识符中,合法的是(B)。

A.int

B.nit

C.123

D.a+b

19、C语言中,要求运算对象只能为整数的运算符是(A)。

A.%

B./

C.>

D.*

20、若有说明语句:charc='\72';则变量c在内存占用的字节数是(A)。

A.1

B.2

C.3

D.4

21、字符串"ABC"在内存占用的字节数是(B)。

A.3

B.4

C.6

D.8

22、要为字符型变量a赋初值,下列语句中哪一个是正确的(B)。

A.chara="3";

B.chara=’3’;

C.chara=%;

D.chara=*;

23、下列不正确的转义字符是(C)。

A.\\

B.\'

C.074

D.\0

二、填空题:

1、C语言中的逻辑值“真”是用(1)表示的,逻辑值“假”是用(0)表示的。

2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为(0)。

3、设c='w',a=1,b=2,d=-5,则表达式'x'+1>c,'y'!=c+2,-a-5*b<=d+1,b==a=2的值分别为(1、0、1、1)。

4、定义变量float x=2.5,y=4.7; inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为(2.5)。

5、判断变量a、b的值均不为0的逻辑表达式为(a!=0&&b!=0)。

6、求解赋值表达式a=(b=10)%(c=6),a、b、c的值依次为(4,10,6)。

7、求解逗号表达式x=a=3,6*a后,x、a的值依次为(3,3)。

8、数学式a/(b*c)的C语言表达式(a/b/c)。

三、编程题:(第4、5、6章)

1、设长方形的高为1.5,宽为2.3,编程求该长方形的周长和面积。

main()

{float x=1.5, y=2.3; printf(“area is%6.2f\n”,x*y);}

2、编写一个程序,将大写字母A转换为小写字母a。

main()

{char c=’A’;printf(“%d”,c+32);}

3.设计任意输入三个整数,求其和与平均值。

main()

{int a,b,c,sum;

float ave;

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

sum=a+b+c; ave=sum/3.0;

printf(“sum=%d,ave=%.2f\n”,sum,ave);

}

4.设计输入任意两个数,互换两个数,并输出。

void main()

{float a,b,temp;

printf("input a and b:");

scanf("%d,%d",&a,&b);

temp=a;a=b;b=temp;

printf("a=%d,b=%d\n",a,b);

}

5.if分支结构程序设计(设计在100以内输入的任意数,按五等级输出。)main()

{float score; char cj;

printf(“input score,max is 100:\n”);

scanf(“%f”,&score);

if(score >=90) cj=’A’;

else if (score >=80) cj=’B’;

else if (score >=70) cj=’C’;

else if (score >=60) cj=’D’;

else cj=’E’;

printf(“Grade=%c\n”,c j);

}

采用switch结构同样实现上述程序功能。

main()

{float t; char ch;

printf(“input score,max as 100:\n”);

scanf(“%f”,&t);

switch(t/10)

{case 10:

case 9:ch=’A’;break;

c ase 8:ch=’B’;break;

case 7:ch=’C’;break;

case 6:ch=’D’;break;

default:ch=’E’;

}

printf(“Grade=%d\n”,ch);

}

6.switch 语句的嵌套使用方法

switch((s>0)&&(s<=10))

{case1:switch((s>=3)&&(s<=6))

{case1:x=2;break;

case0:switch(s>1)||(s>8))

{case1:x=3;break;

case0:x=1;break;

}

}break;

case0:x=0;break;

}

7、循环程序设计

(1)判断1~10之间能被3整除的数,并控制每5个字符输出一行。void main( )

{ int i,s=0;

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

{ if (i%3==0) continue;

printf("%d", i);

s++;

if(s%5==0) printf ("\n");

}

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

}

(2)循环嵌套的使用:给出运行结果。

void main( )

{ int i, j, a=0;

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

{ for( j=0; j<4; j++)

{ if ( j%2 ) break;

a++;

}

a++;

}

printf(“%d \n”,a);

}

(3)采用C 语言编程实现求以下数列的前n 项和,并输出结果。

答案: #include

void main( )

{ int i,n; float s=0;

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

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

s=s+1.0/((2*i-1)*(2*i+1));

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

}

)

12()12(1751531311+?-++?+?+?=n n s ΛΛ

(4)采用C 语言编程实现求以下数列的前n 项和,并输出结果。

答案:

#include

void main( )

{ int i,n,t=-1; float s=0;

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

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

{ t=-t;

s=s+1.0*t/((2*i-1);

}

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

}

第7章 数组习题

1.单项选择题

(1)int a[4]={5,3,8,9};其中a[3]的值为( D )。

A.5

B.3

C.8

D.9

(2)以下4个字符串函数中,( A )所在的头文件与其他3个不同。

A.gets

B.strcpy

C.strlen

D.strcmp

(3)以下4个数组定义中,( D )是错误的。

A.inta[7];

B.#defineN5longb[N];

C.charc[5];

D.int n,d[n];

(4)对字符数组进行初始化,( B )形式是错误。

A.charc1[]={'1','2','3'};

B.charc2[]=123;

C.charc3[]={'1','2','3','\0'};

D.charc4[]="123";

(5)在数组中,数组名表示( A )。

A.数组第1个元素的首地址

B.数组第2个元素的首地址

C.数组所有元素的首地址

D.数组最后1个元素的首地址

(6)若有以下数组说明,则数值最小的和最大的元素下标分别是( B )。

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};

A.1,12

B.0,11

C.1,11

D.0,12

(7)若有以下说明,则数值为4的表达式是( D )。

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc=’a’,d,g;

A.a[g-c]

B.a[4]

C.a['d'-'c']

D.a['d'-c]

(8)合法的数组定义是 ( D )。

A.inta[3][]={0,1,2,3,4,5} ;

B.inta[][3]={0,1,2,3,4};

C.inta[2][3]={0,1,2,3,4,5,6};

D.inta[2][3]={0,1,2,3,4,5,};

(9)下列语句中,正确的是( D )。

A.chara[3][]={'abc','1'};

B.chara[][3]={'abc','1'};

C.chara[3][]={'a',"1"};

D.chara[][3]={"a","1"};

)

12(1)1(513111

--+++-=-n s n ΛΛ

2.填空题

(1)C语言中,数组的各元素必须具有相同的(数据类型),元素的下标下限为(0),下标必须是正整数、0、或者(符号常量)。但在程序执行过程中,不检查元素下标是否(越界)。

(2)C语言中,数组在内存中占一片( 连续)的存储区,由( 数组名)代表它的首地址。数组名是一个常量( 地址),不能对它进行赋值运算。

(3)执行static int b[5], a[][3]={1,2,3,4,5,6};后,b[4]=(0 ),a[1][2]=(6)。

(4)根据以下说明,写出正确的说明语句:men是一个有10个整型元素的数组。

step是一个有4个实型元素的数组,元素值分别为1.9 , -2.33 , 0, 20.6。

grid是一个二维数组,共有4行,10列整型元素。

答案:int men[10]; float step[4]={1.9,-2.33,0,20.6}; int grid[4][10];

(5)array是一个一维整型数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,正确的说明语句为:()。该数组下标的取值范围是从___到___(从小到大)。用scanf函数输入数组的第二个元素表示为:()。用赋值语句把39存入第一个元素表示为:()。把第六个和第四个元素之和存入第一个元素表示为:()。

答案:int array[10]={9,4,7,49,32,-5}; 0 9。

scanf("%d",&array[1]); array[0]=39; array[0]=array[5]+array[3];

(6)写出以下初始化数组的元素个数:①int chn[3]; 数组chn的长度为___。

②float isa[]={1.0,2.0,3.0,4.0,5.0};数组isa的长度为___。

③int doom[8];数组doom的长度为___。

④float pci[4][2];数组pci的长度为___。

⑤int ast[3][3];数组ast的长度为___。

⑥int att[3][4];数组att的长度为___。

⑦float dell[][3]={{1,4,7},{2,5},{3,6,9}};数组dell的长度为___。

答案:3、5、8、8、9、12、9

(7)若有以下整型的a数组,数组元素和它们得值如下所示:

数组元素:a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]

元素的值:9 、4、12、8 、2、10 、7 、5 、1 、3

①请写出对该数组的说明,并赋以上初值。

②该数组的最小下标值为___,最大下标值为___。

③写出下面各式的值:a[a[9]]的值为___;a[a[4]+a[8]]的值为___。

答案:int a[10]={9,4,12,8,2,10,7,5,1,3}; 0 、9 、8 、8

(8)字符串"ab\n\\012/\\\""的长度为___。

答案:10

3.判断题

(×)(1)C允许对数组的大小作动态定义,即可用变量定义数组的大小。

(×)(2)字符数组不要求它的最后一个字符为‘\0’,甚至可以不包含‘\0’。

(×)(3)数组定义int a[10];也可以写成int a(10);。

(√)(4)在对全部数组元素赋初值时,可以不指定数组长度。

(×)(5)定义s为5×6(5行6列)的数组可写成floata[5,6];

(√)(6)数组定义inta[10];表示数组名为a,此数组有10个元素。

(×)(7)数组定义inta[10];表示数组名为a,此数组有10个元素,第10个元素为a[10]。

(√)(8)static char c[]={“abook”};与static char c[]=“abook”;等价。

(×)(9)static char c[]={'a','','b','o','o','k','\0'};与static char c[]={'a','','b','o','o','k'};等价。

(×)(10)设已有说明:static char c1[10],c2[10];下面程序片段是合法的。c 1={“book”};c2=c1;

4.程序填空题

(1)以下程序以每行10个数据的形式输出a 数组,请填空。

void main()

{

int a[50],i;

printf("输入50个整数:");

for(i=0;i<50;i++) scanf("%d",_______);

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

{if(_______)

printf("%3d\n", _______);

i++;

}

if (i<50) printf("%3d",_______)

}

答案:&a[i]、 i%10==0、a[i-1]、a[i-1]

(2)阅读程序,写出运行结果

#include

void main()

{

int a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16}, i, j;

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

{

for(j=0;j<6;j++) if(a[i]==b[j]) break;

if(j<6) printf("%d",a[i]);

}

printf("\n");

}

答案:找到两数组中相同的元素为4、25、27、16

(3)设计一个程序实现将下列二维数组a 行和列元素互换后, 存到另一个二维数组b 中。(要求采用for 循环语句实现)

答案:#include void main( )

??????=654321a ????

??????=635241b

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

printf(“输出转置前的数组:\n”) ;

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

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

{ printf(“%5d”, a[i][j] ) ;

b[j][i] = a[i][j] ; } //行列互换

printf(“\n”) ;

}

printf(“输出转置后的数组:\n”) ;

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

{ for ( j= 0 ; j<2 ; j++)

printf(“%5d”, b[i][j]) ;

printf(“\n”) ;

}

}

第8章函数习题

1.单项选择题

(1)C语言总是从( A )函数开始执行。

A.main

B.处于最前的

C.处于最后的

D.随机选一个

(2)函数在定义时,省略函数类型说明符,则该函数值的类型为( A )。

A.int

B.float

C.long

D.double

(2)以下函数,真正地没有返回值( B )。

A.int a( ){inta=2;return(a);}

B.void b( ){printf("c");}

C.int a( ){inta=2;return a;}

D.以上都是

(3)在C语言中,有关函数的说法,以下正确的是( A )。

A.函数可嵌套定义,也可嵌套调用

B.函数可嵌套定义,但不可嵌套调用

C.函数不可嵌套定义,但可嵌套调用

D.函数不可嵌套定义,也不可嵌套调用

(4)函数调用可以在( D)。

A.函数表达式中

B.函数语句中

C.函数参数中

D.以上都是

(5)被调函数返回给主调函数的值称为( C)。

A.形参

B.实参

C.返回值

D.参数

(6),可以不进行函数类型说明( D)。

A.被调函数的返回值是整型或字符型时

B.被调函数的定义在主调函数定义之前时

C.在所有函数定义前,已在函数外预先说明了被调函数类型

D.以上都是

(7)被调函数通过语句( D ),将值返回给主调函数。

A.if

B.for

C.while

D.return

(8)被调函数调用结束后,返回到( D)。

A.主调函数中该被调函数调用语句处

B.主函数中该被调函数调用语句处

C.主调函数中该被调函数调用语句的前一语句

D.主调函数中该被调函数调用语句的后一语句

(9)以下对C语言函数的有关描述中,正确的是( A)。

A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B.C函数既可以嵌套定义又可递归调用

C.函数必须有返回值,否则不能使用函数

D.C程序中有调用关系的所有函数必须放在同一个源程序文件中

(10)C语言中函数的隐含存储类型是( C)。

A.auto

B.static

C.extern

D.无存储类型

(11)有一个函数原型为abc(floatx,floaty);则该函数的返回类型为( C)。

A.void

B.double

C.int

D.float

2.填空题

(1)变量的作用域主要取决于变量(),变量的生存期既取决于变量(),又取决于变量()。答案:所处的位置,所处的位置,存储类型

(2)说明变量时,若省略存储类型符,系统默认其为存储类别为(),该存储类别的类型符为()。

答案:动态,auto

(3)静态型局部变量的作用域是(),生存期是()。答案:它所在的局部,整个程序

(4)函数中的形参和调用时的实参都是数组名时,传递方式为(),都是变量时,传递方式为()。答案:址传递,值传递

(5)函数的形式参数的作用域为(),全局的外部变量和函数体内定义的局部变量重名时,()变量优先。答案:该函数中,局部

(6)若自定义函数要求返回一个值,则应在该函数体中有一条语句(),若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符()。答案:return,void

(7)若函数的形式参数是指针类型,则实参可以是()或()。答案:指针,数组名

(8)函数的参数为char*类型时,形参与实参结合的传递方式为()。答案:址传递

(9)函数的实参为常量时,形参与实参结合的传递方式为()。答案:值传递

(10)下面这个函数的功能是求两个整数的积,并通过形参传回结果,请填空。

void mul(___x,___y,___result)

{

___=x*y;

}

答案:int、int、int*、*result

3.判断题

(×)(1)函数说明指的是在程序中设定一个函数模块。

(√)(2)形参只有在被调用时才分配存储空间。

(×)(3)在C的函数中,最好使用全局变量。

(×)(4)在调用函数时,实参传值给形参,调用结束时,形参值传给实参。

(√)(5)所有函数定义都是并行的,相互独立的。

(×)(6)函数的隐含存储类型是extern。

(×)(7)形参可以是常量、变量或表达式。

(×)(8)函数调用可以作为一个函数的形参。

(√)(9)C语言规定,实参应与其对应的形参类型一致。

(×)(10)定义函数时,形参的类型说明可以放在函数体内。

第十章指针

一、选择题

1、若有定义:int x, *pb;则以下正确的表达式是(A)

A、pb=&x

B、pb=x

C、*pb=&x

D、*pb=*x

2、以下程序的输出结果是(B)

#include

void main()

{printf(“%d\n”,NULL);}

A、因变量无定义输出不定值

B、0

C、-1

D、1

3、以下程序的输出结果是(B)

#include

void sub(int x, int y, int *z)

{ *z=y-x;

}

void main()

{

int a,b,c;

sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);

printf(“%d,%d,%d\n”,a,b,c);

}

A、5,2,3

B、-5,-12,-7

C、-5,-12,-17

D、5,-2,-7

二、填空题

1、若有定义:char ch;

(1)使指针p指向变量ch的定义语句是(char *p=&ch;)。

(2)若已定义char *p;,使指针p指向变量ch的赋值语句是(p=&ch;)。

(3)在(1)的基础上,通过指针p给变量ch读入字符的scanf调用语句是(scanf(“%c”,p);)。(4)在(1)的基础上,通过指针p给变量ch赋字符’a’的语句是(*p=’a’;)。

(5)在(1)的基础上,通过指针p用格式输出函数输出ch中字符的语句是(printf(“%c”,*p);)。附加类型题:

一、名词解释:1.数组 2.变量 3.常量 4. 指针 5.函数 6.全局变量 7.局部常量

参考答案:

1.数组:是一种将相同类型变量组合在一起的复合型数据结构,分布在存储器的

连续空间中;有一维数组和二位数组。

2.变量:在C语言中变量是程序运行过程中是随时变化的量,并有固定的存储位置;变量有各种类型,如整型、实型和字符型等。

3.常量:在C语言中常量是程序运行过程中始终不变的数据,编译过程中赋值给变量;常量有各种类型,有整型、实型和字符型等。

4.指针:指针是C语言中一种特殊的基本数据类型变量,指针变量中存放的不是操作的数据,而是待操作数据的存储地址;因此程序可通过指针变量确定数据的存放位置,并对它进行所需操作。

5.函数:函数是组成C程序的基本模块,一般由主函数(main)和若干子函数构成;主函数可以调用其它子函数,反过来不可以调用,但子函数可以互相调用。

6.全局变量:在C语言中全局变量是在函数体外定义,从定义位置开始作用所有以下函数模块中;全局变量是静态变量,便于模块间数据传递,但也容易导致数据错误,不易检查。

7.局部变量:在C语言中局部变量是定义在函数体内或复合语句内的变量,是动态变量;局部变量随函数调用而分配内存空间,当函数执行完就自动退出。

二、简答题

1.简述C语言程序设计与运行过程。

2.简述C语言中全局变量与局部变量关系。

3.简述C语言循环语句有几种?各有什么特点?。

4.简述C语言中break与continue语句使用方法。

参考答案:

1.C语言是一种编译型的程序设计语言,必须首先经过编辑处理,形成源文件;然后经编译处理检查源程序是否有语法错误,直到反复修改无语法错误为止,最后生成目标文件;之后在进行连接处理,即将目标文件和所需库文件进行连接;连接成功后生成系统可执行的程序文件;运行程序文件检查程序实现功能,若没有实现预知结果,还有重复前面各过程,直到程序运行正确为止。

2.局部变量是定义在函数内或复合语句中的变量,只能在本函数内或复合语句内使用,其他函数或复合语句不能使用;函数或复合语句间的变量名可以相同或不同。优点是变量利用灵活,变量不永久占有内存空间。

全局变量是定义在函数外部的变量,作用范围是从定义的位置开始到本程序的结束;通常在程序的顶部定义,其作用涵盖源程序文件的各函数。优点是增加了各函数间数据传送的渠道,减少实参和形参的数量;缺点是占用大量存储空间,减低函数的通用性,容易导致程序出错。

3.C语言循环语句有两大种:条件循环语句和无条件循环语句;条件循环语句有三种, while循环语句、for循环语句和do while 循环语句;这三种中的前

两种是先判断后执行,后一个是先执行后判断; goto为无条件循环语句,当执行该语句时,就跳转的指定标号对应的语句中执行;无条件语句破坏了语句执行结构,建议少用该语句。

4. 两种语句都是单纯的执行语句; break 语句使用在多分支switch语句中时,用于终止该分支之后的语句执行;而用在循环语句中时,是退出当前循环;而contiune只用于循环语句中,当执行该语句时,是终止本次循环,可以继续余下的循环。这两种语句用在循环体中时,一般要同分支条件语句配合使用。

C语言程序设计试题及答案

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是(B) A、abc B、12AC C、sun D、A 3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A) A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是(B) A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是(A) A、% B、/ C、%和/ D、+ 6、以下关于运算符的优先顺序的描述正确的是(C) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C) sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)

A、INPUTx、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmain() {intm,n; scanf(“%2d%3d”,&m,&n); printf(“m=%dn=%d\n”,m,n); } A、m=23n=45 B、m=234n=56 C、m=23n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是(A)main() {intx,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、0B、22C、12D、10 11、C语言中while和do-while循环的主要区别(A) A、do-while的循环体至少执行一次 B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 12、以下对二维数组的正确说明的语句是(C) A、inta[3][] B、floata(3,4) C、doublea[3][4] D、floata(3)(4) 13、以下程序的输出结果是(C) main()

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计试题集

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。

程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言程序设计试卷及答案

C语言程序设计试卷及 答案 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

C语言程序设计 一、单项选择题(共15小题,每题4分,共60分) 1、下列有关C语言的叙述中错误的是()。 A)C语句必须以分号结束B)任何一个C程序中有且只有一个主函数 C)复合语句在语法上可被看作一条语句D)C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A)MAINB)_HJC)2ongD)LINE1 3、以下能正确定义一维数组的是()。 A)inta[5]={0,1,2,3,4,5};B)inta[5]=”012345”; C)chara[]=”012345”;D)chara[5]={0,1,2,3,4,5}; 4、以下关于main()函数的说法,正确的是。 A)main()必须是程序的第一行B)main()可以有参数 C)一个程序可以有多个main()D)main()可以被用户自定义的函数调用 5、设charstr1[10]=“ABCDE”,str2[10]=“xyz”; 则执行语句printf(“%d”,strlen(strcpy(str1,str2)));后的输出结果是()。 A)9B)8C)5D)3 6、若用数组名作为函数调用的实参,则传递给形参的是()。 A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数 7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为()。 A)void?B)double?C)int?D)char 8、下面不能正确进行字符串赋值操作的语句是()。

C语言程序设计习题集(3)

指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言程序设计试题与答案D

绝密★启用前学院 学年第二学期期末考试 级专业()《 C语言程序设计》试卷D 一、单项选择题(本大题共15小题,每小题2分,共30分) 1、以下正确的C语言自定义标识符是() A._la B.2a_ C.do D.a.12 2、在C语言中,错误 ..的常数表示是() A.0L B.-0x6aL C.′6′D.1.234E3.5 3、设int a,x=2;执行语句a=x>0?3*x:(x=10);后,变量x的值是() A.1 B.2 C.6 D.10 4、设有以下程序段: int x=2,y=2,z=0,a; a=++x||++y&&z++; printf(″%d,%d,%d\n″,x,y,z); 执行后输出的结果是() A.2,2,0 B.3,3,1 C.3,2,0 D.3,2,1 5、逗号表达式a=2*6,a*3,a+5的值是() A.12 B.17 C.36 D.41 6、设int a[2][3]={{1},{2,3}};,则元素a[1][0]的值是() A.0 B.1 C.2 D.3 7、C语言中,错误 ..的int类型的常数是() A.1E5 B.0 C.037 D.0xaf 8、在C语言中,′a′和″a″存储所占用的字节数分别是() A.1,1 B.1,2 C.2,1 D.2,2 9、设int x;,则以下语句中错误 ..的输入是() A.scanf (″%d″,x); B.scanf (″%d″,&x); C.scanf (″%o″,&x); D.scanf (″%x″,&x); 10、在C语言中,运算符″=″和″==″的功能分别是() A.关系运算和赋值运算B.赋值运算和关系运算 C.都是关系运算D.都是赋值运算 11、设int x[]={1,2,3,4,5},*p=x;,则值为3的表达式是() A.p+=2, *p++ B.p+=2, *++p C.p+=2, p++ D.p+=2, ++*p 12、设for(i=0, j=10; (j>0)&&(i<4); i++, j--);,该语句的循环次数是() A.0 B.3 C.4 D.无限 13、设函数定义如下: float f1 (float a, float b) { return (a+b); } 若有float x=1.1, y=2.2;,则以下语句中正确的函数调用是() A.printf (″%f″, f1(x)); B.printf (″%f″,f1(&x, y)); C.printf (″%f″,f1(*x,*y)); D.printf (″%f″,f1(x, y)); 14、若有说明:int i,j=7,*p=&i;则与i=j;等价的语句是()。 A. i=*p; B. *p=*&j; C. i=&j ; D. i=**p; 15、设char str1[10]=″ABCDE″,str2[10]=″XYZ″;则执行语句: printf(″%d″,strlen(strcpy(str1,str2))); 后的输出是()。 A. 3 B. 5 C. 8 D. 9 二、填空题(本大题共10小题,每小题2分,共20分) 16、一个C语言程序的基本组成单位是___________________。 17、求字符串的有效长度的系统函数名是___________________。 18、设float a [4][5];,则数组a中第一维下标的最大值是___________________。 19、设int a; float b; char c; long d; double e; , 则表达式a/c-b+d-e值的类型是 ______________。 20、设int a=2;,则执行a+=a*=15;后,变量a的值是__________。 21、一个C语言程序的执行起点是__________。 22、设double y[4][5];,则数组y中元素的个数是__________。 23、设int x=7,y=3,则表达式x%y+x/y的值是__________。 24、一个short型变量所占内存的字节数是____________________。

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

C语言程序设计试题集及答案

单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n

【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。

C语言程序设计复习题

《C语言程序设计》复习题 一、判断题(本大题共60个小题) 1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 3.注释内容太多会影响程序的执行效率。 4.变量要“先定义,后使用”。 5.字符常量'a'与字符串常量"a"没有区别。 6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。 7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。 8.表达式5/2+5.0/2+7%6 的值为5.5。 9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。 10.设int a=12; 则表达式a/=a+a的值是0.5。 11.在C语言中,运算符!比&&的优先级高。 12.在C语言中,运算符的优先级最小的是逗号运算符。 13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。 14.以下程序运行结果是:1,7,0 void main() { int x=1,y=1,z=10; if(z< 0) if(y> 0) x=3; else x=5; printf(" %d," ,x); if(z=y< 0) x=3; else if(y==0) x=5; else x=7; printf(" %d,%d" ,x,z); } 15.该程序运行结果是:BCother void main()

{ char x=‘B’; switch(x) { case ‘A’: printf(“A”); case ‘B’: printf(“B”); case ‘C’: printf(“C”); default: printf(“other”); } } 16.下面程序段运行时输出结果是a=2,b=8 void main() { int x=1,y=1,a=2,b=7; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,b); } 17.下面程序,当输入为:"abc?" 时,执行结果是:abc void main() { char c; c=getchar(); while (c!='?' ) { putchar(c); c=getchar();} }

C语言程序设计试卷及答案

C 语言程序设计 笔试试题 试卷说明: 1. 笔试卷面总分100分,取卷面成绩的70%计入总分; 2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%; 3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸; 4. 答题时间120分钟。 一、单项选择题。将正确答案填入下面框中。 (本题16分,每小题1分) 1. 有以下程序 main() {int a=1,b=0; if(!a) b++; else if(a==0) if(a) b+=2; else b+=3; printf(“%d\n ”,b); }则程序输出( A )。 A) 0 B) 1 C) 2 D) 3 2. 有以下定义:int a; long b; double x,y;则下列正确的是( A )。 A) a%(int)(x-y) B) a=x!=y C) (a*y)%b D) y=x+y=x 3. 若有定义 int (*p)[3];则下列说法正确的是( C )。 注意行为规范 遵守考试纪律

A) 定义了基类型为int的三个指针变量 B) 定义了一个名为*pt、具有三个元素的整型数值 C) 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组 D) 定义了基类型为int的具有三个元素的整型数组 4. 有以下程序段 main() { int x=10; while(x--); printf("x=%d\n",x);} 则最后的输出结果是:( B)。 A) x=0 B) x= -1 C) x=1 D)while构成无限循环 5. 有以下程序: int fun() {static int x=1; x *= 2; return x;} main( ) { int i,s=1 ; for(i=1 ;i<=2 ;i++) s=fun() ; printf(“%d\n ”,s) ;} 执行后的输出结果为( D)。 A) 0 B) 1 C) 8 D) 4 6. void main( ){ int k=011; printf("%d\n",k++); } }程序输出结果是( D ) A)12 B) 11 C) 10 D) 9 7. 以下C语言标识符中,不合法的是( C)。 A) _2 B) a_b C) a--b D) AaBc 8. C语言允许函数类型默认定义,此时该函数值隐含的类型是( B)。 A) float B) int C) long D) double 9. 以下程序段运行结果是( B)。 enum weekday{aa,bb=2,cc,dd,ee}week=ee;

(完整版)C语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

C语言程序设计习题大全(附答案)

C语言基础一: 1.下列四组选项中,均不是C语言关健字的选项是( A )。 A) define B) gect C) include D) while IF char scanf go type printf case pow 2.下面四个选项中,均是合法整型常量的选项是( A )。 A)160 B)-0xcdf C) -01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x <<02>>B>>2 3.下面四个选项中,均是不合法的转义符的选项是( B )。 A) '\"' B) '\1011' C) '\011' D) '\abc' '\\' '\' '\f' '\101' 'xf' '\A' '\}' 'x1f' 4.下面不正确的字符串常量是( A )。 A)'abc' B)"12'12" C)"0" D)" " 5.以下选项中不合法的用户标识符是( A )。 A)abc.c B)file C)Main D)PRINT 6.C语言提供的合法关键字是( D )。 A) swith B) cher C) Case ).Default 7.下列标识符组中,合法的用户标识符为 A A)_0123与ssiped B)del-word与signed C)list与*jer D) keep%与wind 8.在C语言中,逻辑值"真"的表示是用( C )。 A) true B) 整型值0 C)非另整型值D) T 9若有以下定义 char s='\092'; 则该语句( B ) A)使s的值包含一个字符B)定义不合法,s的值不确定 C)使s的值包含4个字符D)使s的值包含3个字符 10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。 A)1 B)2 C)8 D)4 11已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为( A )。 A)D B)68 C)不确定的值D)C 12逻辑运算符两侧运算对象的数据类型是( D )。 A) 只是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据D) 可以是任何合法的类型数据 13TURBO C中int类型变量所占字节数是( B )。

c语言程序设计题目及答案

一、程序设计共113 题第1 题题 号:319 #include "stdio.h" void wwjt(); int fun(int m) { int i,k=1; if(m<=1) k=0; for(i=2;i #include #define M 3 #define N 4 void wwjt(); void fun(int tt[M][N],int pp[N]) { int i,j; for(j=0;jpp[j]) pp[j]=tt[i][j]; } 第3 题题号:375 功能:从键盘上输入任意实数, 求出其所对应的函数值。 z=e 的x 次幂( x>10) z=log(x+3) (x>-3) z=sin(x)/((cos(x)+4) #include #include void wwjt(); double y(float x) { double z; if(x>10) z=exp(x); else if(x>-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z); } 第4 题题号:334 功能:求给定正整数n 以内的素数之积。( n<28) #include #include"conio.h" void wwjt(); long fun(int n) { long i,k; long s=1; for(i=2;i<=n;i++) {for(k=2;k #include"conio.h" void wwjt(); long int fun(int n) { long s=1,i; for(i=2;i<=n;i++) if(n%i==0)s=s*i; return s; } 第6 题题号:50 功能:求出菲波那契数列的前一项与后一项之比的极限的 近似值例如:当误差为0.0001 时,函数值为0.618056 。 #include #include "math.h" void wwjt(); float fun() { float f1=1,f2=1,f3; float r1=2,r2; do {r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; }while(fabs(r1-r2)>1e-4); return r1; } 第7 题题号:394 功能:产生20个[30,120] 上的随机整数放入二维数组 a[5][4] 中, 求其中的最小值。 #include "stdlib.h" #include void wwjt(); int amin(int a[5][4]) { int i,j,s; s=a[0][0];

相关主题