C语言选择、填空、判断题

一、单项选择题(17道小题,共20分)

1、以下叙述中正确的是( C )。(1分)

A、 C语言比其他语言高级

B、 C语言可以不用编译就能被计算机识别执行

C、 C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D、 C语言出现的最晚,具有其他语言的一切优点

2、以下说法正确的是( C )。(1分)

A、C语言程序总是从第一个函数开始执行

B、在C语言程序中,要调用函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行

D、C语言程序中的main()函数必须放在程序的开始部分

3、下列可用于C语言用户标识符的一组是( B )。(1分)

A、 void define WORD

B、 a3_b3 _123 Car

C、 For abc case

D、 2a DO sizeof

4、设int a=3,b=4,c=5;表达式(a+b)>c&&b==c的值是( C ) 。(1分)

A、2

B、-1

C、0

D、1

5、以下关于循环体的描述中,( C )是错误的。(2分)

A、循环体中可以出现break语句

B、循环体中还可以出现循环语句

C、循环体中不能出现continue语句

D、循环体中可以出现switch语句

6、While(x)中的x相当于( D )。(2分)

A、x==0

B、x==1

C、x!=1

D、x!=0

7、以下关于switch语句和break描述中 , ( A ) 是正确的。(2分)

A、在switch语句中,可以根据需要使用或不使用break语句

B、switch语句中必须用break语句

C、break语句只能用于switch语句

D、break语句是switch语句必须的一部分

8、以下对C语言函数的有关描述中,正确的是( B )。(1分)

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

B、C函数既可以嵌套调用又可以递归调用

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

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

9、在下面的函数声明中,存在着语法错误的是( A )。(1分)

A、int BF(int x ; int y);

B、void BC(int a , int);

C、void BD(int , int);

D、void BE(int , int=5)

10、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( B )。(1分)

A、位置传递

B、单向值传递

C、由实参传给形参,再由形参传回实参

D、传递方式由用户指定

11、一个程序源文件中全局变量作用范围为( D )。(1分)

A、本文件的全部范围

B、本程序的全部范围

C、本函数的全部范围

D、从定义该变量位置开始至文件结束

12、若有以下语句:static char x[ ]="12345";static char y[ ]={'1','2','3','4','5'};则正确的说法是( B )。(1分)

A、 x数组和y数组的长度相同

B、 x数组的长度大于y数组的长度

C、 x数组的长度小于y数组的长度

D、 x数组与y数组等价

13、在C++语言中,定义数组后,使用数组元素时,数组下标可以是( C )。(1分)

A、整型常量

B、整型表达式

C、整型常量或整型表达式

D、任何类型的表达式

14、在下面的一维数组定义中,哪一个( A )有语法错误。(1分)

A、int a[ ];

B、int a[ ]={1,2,3};

C、int a[5];

D、int a[10]={0};

15、在声明语句const char *ps;中,ps表示( C )。(1分)

A、指向字符串的指针

B、指向字符串的const型指针

C、指向const型字符串的指针

D、指向const型字符串的const型指针

16、若有语句: int x[]={1,2,3,4,5}; int *ptr; ptr=x; 则( C ) 是对数组元素x[1]的正确引用。

(1分)

A、ptr+1

B、*ptr+1

C、*(ptr+1)

D、*ptr++

17、在int k=8,*p=&k中,*p的值是( C )。(1分)

A、指针变量p的位置值

B、变量k的位置值

C、 8

D、无意义

18、设int a=5,b=9,c=15,表达式(a+b)/c||(a

A、0

B、2

C、1

D、-1

19、若变量c为char类型,能正确判断出c为小写字母的表达式是( D ) 。(1分)

A、'a'<=c<='z'

B、(c>='a')||(c<='z')

C、('a'<=c)and('z'>=c)

D、(c>='a')&&(c<='z')

20、以下 ( C )是不正确的描述。(2分)

A、while循环先判断表达式,后执行循环体语句

B、do-while循环先执行循环语句,后判断表达式

C、while,do-while 循环效果完全一样,不会出现不一致情况

D、for循环可以用while语句代替

21、下列关于函数的参数的描述中,错误的是( D )。(1分)

A、 C语言函数的参数可以是多个

B、 C语言函数参数可以0个

C、 C语言函数的形参可以是指针或引用

D、 C语言函数的形参与实参类型要求一致不是必需的。

22、以下叙述中不正确的是( D ) 。(1分)

A、预处理命令都必须以#号开始

B、在程序中凡是以#号开始的语句行都是预处理命令行

C、宏替换不占用运行时间,只占编译时间

D、在以下定义是正确的:#define PI 3.1415926;

23、以下能正确定义一维数组的选项是( B )。(1分)

A、 int a[5]={0,1,2,3,4,5};

B、 char a[]={'0','1','2','3','4','5','\0'};

C、 char a={'A','B','C'};

D、 int a[5]="0123";

24、下面程序段char *p="abcdefgh"; p+=3; printf("%d\n",strlen(strcpy(p,"ABCD")));的运行结果是( C )。(1分)

A、 8

B、 12

C、 4

D、 7

25、由C/C++源程序文件编译而成的目标文件的缺省扩展名为( C )。(1分)

A、 cpp

B、 exe

C、 Obj

D、 lik

26、下列语句哪个是正确的( B )。(1分)

A、int a="a";

B、char c=105;

C、char c="abc";

D、char c="\n";

27、如执行以下语句,for (I=1;I<=100;I++){sum=sum+I;}循环结束后I值是( C )。(2分)

A、100

B、99

C、101

D、102

28、下面有关for循环的正确描述是( D )。(2分)

A、 for循环只能用于循环次数己经确定的情况

B、 for循环是先执行循环体语句,后判定表达式

C、在for循环中,不能用break语句跳出循环体

D、 for循环体语句中,可以包含多条语句,但要用花括号括起来

29、在C/C++中,函数原型不能标识( A )。(1分)

A、函数的功能

B、函数的返回类型

C、函数参数的个数

D、函数参数类型

30、C语言中数组下标的下限是( B )。(1分)

A、1

B、0

C、视具体情况

D、无固定下限

31、下列描述中不正确的是( C )。(1分)

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

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

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

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

32、在以下定义中,正确的说明语句为( D )。(1分)

A、int a['a'];

B、int a[3,4];

C、int a[ ][ ];

D、int *a[10];

33、在声明语句int *fun();中,fun表示( B )。(1分)

A、一个用于指向函数的指针变量

B、一个返回值为指针型的函数名

C、一个用于指向一维数组的行指针

D、一个用于指向int型数据的指针变量

34、若有语句:char *line[5];,以下叙述中正确的是( A )。(1分)

A、定义line是一个数组,每个数组元素是一个基类型为char为指针变量

B、定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C、定义line是一个指针数组,语句中的*号称为间址运算符

D、定义line是一个指向字符型函数的指针

35、for(int x=0; x <=5;x+=2){...}语句执行循环的次数是( A )。(2分)

A、3

B、4

C、5

D、6

36、执行以下语句,for (I=10;I>=0;I--,I--){sum=sum+I;}循环结束sum和I的值分别是( D )。(2分)

A、32 0

B、30 0

C、28 -1

D、30 -2

37、函数调用语句fun(a1,f(a,b),3+x);中fun函数的参数个数是( C ) 。(1分)

A、 1

B、 2

C、 3

D、 4

38、设有数组定义:char array[]="China";,则数组array所占的空间为( C ) 。(1分)

A、 4个字节

B、 5个字节

C、 6个字节

D、 7个字节

39、程序段char str[]="ABC"; *p=str; printf("%d\n",*(p+2));的运行结果是( A )。(1分)

A、 67

B、 0

C、字符'C'的位置

D、字符'C'

40、下述关于break语句的描述中,( C )是不正确的。(2分)

A、 break语句可用于循环体内,它将退出该重循环

B、 break语句可用于switch语句中,它将退出switch语句

C、 break语句可用于if体内,它将退出if语句

D、 break语句在一个循环体内可以出现多次

41、在C语言程序中,当while语句构成的循环中的条件为( A )时,结束循环。(2分)

A、0

B、1

C、true

D、非0

42、有一个int型变量,在程序中频繁调用,最好把它定义为( A )。(1分)

A、 register

B、 auto

C、 extern

D、 static

43、以下不能对二维数组a进行正确初始化的语句是( C )。(1分)

A、 int a[2][3]={0};

B、 int a[][3]={{1,2},{0}};

C、 int a[2][3]={{1,2},{3,4},{5,6}};

D、 int a[][3]={1,2,3,4,5,6};

44、对于声明语句int *p[10]; 下列( B )描述是正确的。(1分)

A、 p是指向数组中第10个元素的指针

B、 p是具有10个元素的指针数组,每个元素是一个int型指针

C、 p是指向数组的指针

D、 p[10]表示数组的第10个元素

45、对于指针的运算,下列说法( C )是错误的(1分)

A、可以用一个空指针赋值给某个指针

B、一个指针可以加上一个整数

C、两个指针可以进行加法运算

D、两个指针在一定条件下,可以进行相等或不相等的运算

46、一个函数无返回值时,应选择下列的说明符是( C )。(1分)

A、 static

B、 extern

C、 void

D、无说明符

47、在C语言中,若对函数类型未加显式说明,则函数的隐含类型是( C )类型。(1分)

A、void

B、double

C、int

D、char

48、以下定义语句中,错误的是( D )。(1分)

A、int a[]={1,2};

B、char *a[3];

C、char s[10]="test";

D、int n=5,a[n];

49、下面程序int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));的输出结果是( A )。(1分)

A、 3

B、 4

C、 1

D、 2

50、C语言中合法的字符常量是( C )。(1分)

A、"ABC"

B、"$"

C、'\n'

D、95

51、已知int t=0;while (t=1){...}则以下叙述正确的是( B )。(2分)

A、循环控制表达式的值为0

B、循环控制表达式的值为1

C、循环控制表达式不合法

D、以上说法都不对

52、下列关于函数值的说法中,正确的是( B ) 。(1分)

A、定义函数时,函数名前必须指明类型,否则该函数值没有类型

B、定义函数时,若未指明函数的类型,则该函数值的类型为 int

C、函数值的类型只能是数值类型,如int、float等

D、定义函数时的函数体的最后必须有return语句,返回函数值

53、若有定义:int a[2][3];则对a数组的第i行第j列(假调i,j已正确说明并赋值)元素值的正确引用为( A )。(1分)

A、 *(*(a+i)+j)

B、 (a+i)[j]

C、 *(a+i+j)

D、 *(a+i)+j

54、下面函数调用语句func((exp1,exp2),(exp3,exp4,exp5));中func函数有实参的个数为( B )。(1分)

A、 1

B、 2

C、 4

D、 5

55、若有定义int a[9],*p=a;则p+5表示( B )。(1分)

A、数组元素a[5]的值

B、数组元素a[5]的位置

C、数组元素a[6]的位置

D、数组元素a[0]的值加上5

56、以下叙述中不正确的是( D )。(1分)

A、在不同的函数中可以使用相同名字的变量

B、函数中的形式参数是局部变量

C、在一个函数内定义的变量只在本函数范围内有效

D、在一个函数内的复合语句中定义的变量在本函数范围内有效

57、C语言中不合法的字符串常量是( B )。(1分)

A、 "\121"

B、 'y'

C、 "\n\n"

D、 "ABCD\x6d"

58、已知char m[]="Convert",*p=m;则*(p+5)的值是( C )。(1分)

A、 e

B、 Convert

C、 r

D、不确定

59、设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( B )。(1分)

A、 k=*p1+*p2;

B、 p2=k;

C、p1=p2;

D、k=*p1;

60、对语句float (*pf)(float x);的描述,正确的是( A )。(1分)

A、一个用于指向函数的指针变量

B、一个返回值为指针型的函数名

C、一个用于指向float型数据的指针数组

D、一个用于指向float型数据的指针变量

二、填空题(25道小题,共34分)

1、C语言程序执行的入口点是主函数。

2、设y是int型变量,请写出判断y为奇数的关系表达式 y%2!=0 。

3、设x是int型变量,请写出x是偶数并且不能被3整除的表达式 x%2==0&&x%3!=0 。

4、设a,b为int型变量,x,y为float型变量,且设a=5,b=10,x=3.5,y=10.8。为了得到以下的输出格式和结果,请将对应的输出语句补充完整。

//输出格式及结果:a=5,b=10,x+y=14.3

printf(" a=%d,b=%d,x+y=%4.1f”,a,b,x+y );

//或 cout<< ;

5、for(;;)语句相当于while( 1 )

6、C语言中结束一次循环的语句是 continue 。

7、如C程序中对一个函数的调用在前,定义在后,则必须在调用前对该函数进行声明。

8、在函数定义中,形式参数是被调函数接收调用者数据的主要途径。

9、若被调函数是标准库函数,则在使用前需在程序的开头用 #include 命令将被调函数的信息包含进来。

10、在语句 int fun(float f, int i); 中,变量f和i具有函数声明作用域。

11、标识符在程序中可引用的区域称为作用域。

12、比较两个字符串大小的函数是 strcmp() 。

13、array是一个一维整形数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,

请写出正确的说明语句 int array[10]={9,4,7,49,32,-5}; 。

14、字符串是以‘\0’为结束标志的一维字符数组。

15、若用数组名作为函数调用的实参,传递给形参的将是数组首位置。

16、若有定义int i;int *p=&i;则&*p等价于 &i 。

17、C语言程序设计包括编写源代码、编译、连接和运行等步骤。

18、C语言中唯一的三目运算符是条件运算符。

19、有一个函数原型如下所示:

abc(float x,float y);

则该函数的返回类型为 int 。

20、在C语言中,形参的缺省存储类是 auto 。

21、设int a[2][3]={{5},{6}}; 则数组元素 a[0][0] 的值为5。

22、已知有以下的说明,

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

那么a[*(a+a[3])]的值为 0 。

23、C源程序的扩展名是 .c 。

24、已知整型变量a=6,字符型变量ch='A',浮点数变量f=2.1,则表达式ch+a+f 的值为

73.1 。 (提示:'A'的ASCII码为65)

25、表示条件:1010&&x<100||x<0 。

26、由顺序、选择和循环三种基本结构构成的算法称为结构化算法。

27、C语言中至少执行一次循环体的循环语句是 do{……} while 。

28、C语言程序的基本单位是函数。

29、程序中变量的生存期各不相同。在程序运行前就分配存储空间的变量是静态变量。

30、C语言中构成数组的各个元素具有相同的数据类型。

31、如果在程序中调用了strcat函数,则需要预处理命令即头文件 #include

32、有如下程序段 int *p,a=10,b=1; p=&a; a=*p+b; 执行该程序段后,a的值为 11 。

33、按照优先级从高到低的顺序写出C语言中的三种逻辑运算符 !,&&,|| 。

34、若要输出字段宽度为4的十进制数printf函数应使用格式说明"%4d",字段宽度为10实数应使

用 %10f 。

35、假定a和b为int型变量,则执行以下语句后b的值为 0 。

a=1; b=10; do { b-=a; a++; } while (b);

36、在一个函数体内调用另一个函数,称为嵌套调用;函数调用自身,称为递归调用。

37、函数可以嵌套调用,但是不可以嵌套定义。

38、全局变量在函数外部定义,作用域从定义点开始到文件的结束。

39、有如下语句 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则*(p+8)的值为 9 。

40、设有说明语句:char a= '\72';则变量a包含 1 个字符。

41、已知float x=2.5,y=4.7;int a=7;,表达式x+a/3*int(x+y)%2的值为 2.5 。

42、C语言是一种面向过程(选择面向对象或面向过程)高级程序设计语言。

43、字符串"ab\n\\012/\\\""的长度为 10 。

44、C语言中结束本层循环的语句是 break 。

45、程序根据判断条件是否成立,从而选择执行不同的程序段。这样的程序结构叫分支结构。

46、调用函数和被调用函数之间交流信息的通道是参数。

47、函数的返回值是通过函数中的 return 语句获得的。

48、若有以下说明和语句,则p1-p2的值为 -5 。

int a[10], *p1, *p2;

p1=a;

p2=&a[5];

49、有语句char str1[10],str2[10]={"china"}; 则能将字符串china赋给数组str1的正确语句是

strcpy(str1,str2) ; 。

50、C语言程序编译的过程是以源程序文件为单位的。

51、当具有块作用域的局部变量与具有文件作用域的全局变量同名时,局部变量优先。

52、若有定义:static int a[3][4]={{1,2},{0},{4,6,8,10)); 则初始化后,a[1][2]的值为 0 。

53、函数strlen("China")返回的值为 5 。

54、在C语言程序设计中,生成可执行程序(.exe文件)的步骤是编辑、编译、连接。

54、C语言中基本的数据类型有整型、实型、字符型。

55、以下循环体的执行次数是 1 。

main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i); }

56、若有声明语句char * pCh;则系统为变量pCh分配的内存单元字节数是 4 个。

1、下面的程序求区间[100,200]内10个随机整数中的最大数、最小数。

#include//或 #include

#include

void main( )

{

int max, min,x;

x= rand( )%101+100;

printf("%4d",x);//cout<

max = x; min =x;

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

{

x= rand()%101+100 ;

printf("%4d",x);//cout<

if(x > max) max=x ;

if(x < min) min=x ;

}

printf("\n最大数:%4d,最小数: %4d\n",max,min);

//cout<

}

2、下面程序的功能是从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到打印“no exist”。

#include //或 #include

void main()

{

int i,a;

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

{

scanf("%d",&a);//或cin>>a;

if( a%7==0 )

{

printf("%d",a); //或cout<

break;

}

}

if( i>10 ) printf("no exist");//或cout<<"no exist";

}

3、下面这个程序打印出以下这个三角形.请填空。

11

222

3333

44444

555555

6666666

77777777

888888888

9999999999

void main()

{

int i,j;

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

{

for(j=0;j< i+1 ;j++)

printf(“%d”, i ) ;

printf("\n"); //或 cout<

}

}

4、以下程序通过函数SunFun和F(x)求解x^2+1的累加和,x=0到10。这里F(x)=x^2+1。请填空。

(说明:x^n即x的n次幂)

#include //或 #include

void main()

{

printf("The sun=%d\n", SunFun(10) );

//或 cout<<"The sun="<< )<

}

SunFun(int n)

{ int x,s=0;

for(x=0;x<=n;x++) s+=F( x );

return s;

}

F(int x)

{ return ( x*x+1 );}

5、函数fun的功能是计算x^n。主函数中已经正确定义m、a、b变量并赋值,并调用fun函数计算:m=a^4+b^4-(a+b)^3。(说明:x^n即x的n次幂)

#include //或 #include

double fun(double x,int n)

{

int i; double y=1;

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

y=y*x ;

return y ;

}

void main()

{

double m,a,b;

a=7.3;

b=5.1;

m= fun(a,4)+fun(b,4)+fun(a+b,3) ;

printf("m=%lf\n",m); //或 cout<<"m="<

}

6、以下程序可计算10名学生1门课成绩的平均分。

float average(float array[])

{int i;

float aver,sum=array[0];

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

sum+= array[i] ;

aver=sum/10;

return(aver);

}

void main()

{

float score[10],aver;

int i;

printf("input 10 scores:");//或cout<<"input 10 scores:";

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

scanf("%f",&score[i]);//或cin>>score[i];

aver= average(score) ;

printf("the average score is:%f",aver);//或cout<<"the average score is"<

7、下面程序的功能是检查一个二维数组是否对称(即a[i][j]是否等于a[j][i])。

#include //或 #include

void main()

{ int a[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};

int i,j,found=1;

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

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

if( a[i][j]!=a[j][i] )

{

found=0 ;

break;

}

if(found==0)

break;

}

if(found==1)

printf("yes");//或cout<"no";

else

printf("no");//或cout<"yes";

}

8、以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。

#define M 2

#define N 4

void SumColumMin(int a[M][N],int *sum)

{ int i,j,k,s=0;

for(i=0;i

{ k=0;

for(j=1;j

if(a[k][i]>a[j][i])k=j;

s+= a[k][i] ;

}

*sum =s;

}

void main()

{ int x[M][N]={3,2,5,1,4,1,8,3},s;

SumColumMin( x, &s );

printf("%d\n",s); //或 cout<

}

9、fun函数的功能是:首先实现在N行M列的二维数组a中,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。

#define N 5

int fun(int a[N][N])

{int row,col,max,min;

for(row=0;row

{for(max= a[row][0] ,col=1;col

if( max

max=a[row][col];

if(row==0) min=max;

else if( min>max ) min=max;

}

return min;

}

10、下面程序输出1至100之间每位数的乘积小于每位数的和的数。

#include //或 #include

main()

{

int n,k=1,s=0,m;

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

{

k=1;s=0;

m=n ;

while (m!=0)

{k*=m%10;

s+=m%10;

m= m/10 ;

}

if(k

}

}

11、以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。

int fun ( int n)

{

int m=0,f=1,i;

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

{ m+=i*f;

f= -f ;

}

return m ;

}

void main()

{

printf("m=%d\n", f(10) ); //或 cout<<"m="<< )<

}

12、斐波那契数列中的头两个数是0和1,从第三个数开始,每个数等于前两个数的和,即:0,1,1,2,3,5,8,13,21,...等。下面这个程序就是求斐波哪契数列的前20个数。请填空。

#include //或 #include

void main()

{

int f,f1,f2,i;

f1=0;f2=1;

printf("%d\n%d\n",f1,f2); //或 cout<

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

{

f= f1+f2 ;

printf("%d\n",f); //或 cout<

f1=f2;

f2= f ;

}

}

13、下面程序的功能是求出用数字0至9可以组成多少个没有重复的三位偶数。

#include //或 #include

void main()

{int n,i,j,k;

n=0;

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

for(k=0;k<=8; k+=2 )

if(k!=i)

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

if( j!=k && j!=i )

n++;

printf("%d",n);//cout<

}

14、以下程序的功能是:在主函数中输入一个整数n,调用函数fun计算n的所有因子(不包括1与自身)之和。

#include //或 #include

int fun(int x)

{

int s=0,i;

for(int i=2;i<=x-1;i++)

if( x%i==0 )

s+=i;

return s ;

}

void main()

{

int n, sum;

printf("请输入一个整数:"); //或 cout<<"请输入一个整数:";

scanf("%d", &n); //或 cin>>n;

printf("%d的所有因子(不包括1与自身)之和是%d", fun(n) );

//或 cout<< ;

}

15、以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空:#define N 3

#define M 4

void LineMax(int x[N][M])

{ int i,j,p;

for(i=0;i

{ p=0;

for(j=1;j

if(x[i][p]

printf("The max value in line %d is %d\n",i, x[i][p] );

//或 cout<<"The max value in line "<

}

}

main()

{ int x[N][M]={1,.5,7,4,2,6,4,3,8,2, 3,1};

LineMax(x) ;

}

16、下面程序功能是计算100到1000之间有多少个其各位数字之和是5的数。

#include //或 #include

void main()

{ int i,s,k,count=0;

for(i=100;i<=1000;i++)

{

s=0;k=i;

while( k!=0 )

{s=s+k%10;

k= k/10 ;

}

if( s==5 )

{

printf("%4d",i);//或cout<

count++;

}

}

printf("\n%d\n",count);//或cout<

}

17、下面程序的功能是打印100以内个位数为6且能被3整出的所有数。

#include //或 #include

main()

{

int i,j;

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

{

j= i ;

if( j%3!=0||j%10!=6 ) continue;

printf("%d,",j); //或cout<

}

}

18、以下search函数的功能是利用顺序查找法从数组a的10个元素中对关键字m进行查找。顺序查找法的思路是:从第一个元素开始,从前往后依次与关键字比较,直到找到此元素或查找到数组尾部时结束。若找到,返回下标,否则返回-1;

int search(int a[],int m)

{

int i;

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

if( a[i]==m )

return(i);

return(-1);

}

void main()

{

int a[10],m,i,no;

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

scanf("%d",&a[i]);//cin>>a[i];

scanf("%d",&m);//cin>>m;

no=search( a, m );

if( no!=-1 )

printf("found!%d",no+1);//cout<<"found!"<

else

printf("not found!");//cout<<"not found!";

}

19、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束,请填空。

#inlude //或 #include

void main()

{

float x,amax,amin ;

scanf("%f",&x); //或 cin>>x;

amax=x;

amin=x;

while( x>=0 )

{

if(x>amax)

amax=x;

if( x

amin=x;

scanf("%f", &x); //或 cin>>x;

}

printf("amax=%f, amin=%f\n", amax, amin);

//或 cout<<"amax="<

//或 cout<<"A="<

}

}

21、主函数main定义如下:

void main()

{

int a,b;

cin>>a>>b;

if(b>a)

{

int t;

t=a; a=b; b=t;

}

}

其中t的作用域称作块作用域。

22、以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数.用输入零来结束输入,程序中用变量i 统计大于零的整数个数,用变量j统计小于零的整数个数.请填空.

#include //或 #include

// #include

main()

{

int n,i,j;

printf("输入非零的整数(输入零结束程序)"); //或 cout<<"输入非零的整数(输入零结束程序)";

i=j=0;

scanf("%d",&n); //或 cin>>n;

while ( n!=0 )

{

if(n>0)

i= i+1 ;

if(n<0)

j= j+1 ;

scanf("%d",&n); //或 cin>>n

}

printf("i=%4d j=%4d\n",i,j);//或 cout<<"i="<

19、C程序总是从main()函数的第一条语句开始执行的。(1分)正确

20、在C程序中,赋值号( = )运算优先级别最低。(1分)正确

21、函数的形参可以是常量、变量或表达式。(1分)错误

22、在定义二维数组时,可以将该数组的两个维数全部省略。(1分)错误

23、字符串"The"小于字符串"the"。(1分)正确

24、for循环只能用于循环次数已经确定的场合。(1分)错误

25、int *p=150;语法错误。(1分)正确

26、C语言是一种结构化程序设计语言。(1分)正确

27、在switch-case语句中,不是每个case后都必须使用break语句,可以根据需要使用break语句。(1分)

正确

28、C语言为所定义的数组在内存中分配一片连续的存储单元。(1分)正确

29、char str[50]; str="I am a student."; 是合法语句。(1分)错误

30、_ya是不合法的C语言标识符。(1分)错误

31、若有定义:long int j,*p;则操作j=p;是合法操作。(1分)错误

32、若有定义:double x[3][5];则x数组中行下标的下限为0,列下标的上限为4 。正确

33、宏替换不占用程序运行时间,只需编译时间。(1分)正确

34、Break语句用在循环体中,可使此循环结束。(1分)错误

35、a-=7等价于a=a-7。(1分)正确

36、若调用一个没有return语句的函数,则该函数也能返回一个用户所希望的函数值。错误

*//计算下面级数前n项中(n=50)奇数项的和,并输出该级数最后两项之差的绝对值。1*2*3+2*3*4+3*4*5+……

+n*(n+1)*(n+2)+…

#include

int main()

{

int n=50,s=0,t,i;

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

s=s+i*(i+1)*(i+2);

t=49*(49+1)*(49+2)-47*(47+1)*(47+2);

printf("前n项中(n=50)奇数项的和为:%d\n",s);

printf("最后两项之差的绝对值为:%d\n",t);

}

//从键盘上输入a与n的值,计算sum=a+aa+aaa+aaaa+…(共n项)的和。例a=2,n=4,则sum=2+22+222+2222. #include

int main()

{

int n,sum=0,a,i,b=0;

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

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

{

b=b*10+a;

sum=sum+b;

}

printf("sum=2+22+222+2222的和为:%d\n",sum);

//printf("最后两项之差的绝对值为:%d\n",t);

}

//编写程序,输出下列三角形:

// 1 2 3 4 5 6 7

// 1 2 3 4 5

// 1 2 3

// 1

//

#include

int main()

{

int i,j;

for(i=4;i>=1;i--)

{

for(j=1;j<=4-i;j++)

printf(" ");

for(j=1;j<=2*i-1;j++)

printf("%2d",j);

printf("\n");

}

}

//请编写一个函数fun,它的功能是:计算n门课程的最高分,计算结果作为函数值返回。//例如:若有5门课程的成绩是:90,92,80,61,55,则函数的值为92。

//注意:部分源程序给出如下。请在函数fun的花括号中填入所编写的若干语句。

double fun(int a[],int n)

{

int i;

double max;

max=a[0];

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

if(max

max=a[i];

return max;

}

void main()

{

int c[5],i;double aver;

//cout<<"请输入5门课成绩:";

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

// cin>>c[i];

scanf("%d",&c[i]);

aver=fun(c,5);

//cout<<"所输入的所有成绩的最高分为:";

// cout<

printf("%f",aver);

// cout<

}

//计算下面级数前n项(n=20)的和。1*2*3+2*3*4+3*4*5+……+n*(n+1)*(n+2)+…

#include

int main()

{

int n=20,s=0,i;

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

s=s+i*(i+1)*(i+2);

printf("前n项中(n=50)奇数项的和为:%d\n",s);

//有一头母牛,它每年年初生一头小母牛,每头小母牛从第四个年头起,每年年初也生一头小母牛,编写程序,求第20年时,共有多少头牛。

#include

int main()

{

int N;

int fac(int n);

while(1)

{

scanf("%d",&N);

if(N==0)

break;

else

printf("%d",fac(N));

printf("\n");

}

return 0;

}

int fac(int n)

{

int static cow;

if(n==1||n==2||n==3) cow=1;

else if(n==4) cow=2;

else cow=fac(n-1)+fac(n-3);

return cow;

}

//请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。

//例如,当a=45,b=12,调用该函数后,c=4251。

//函数fun原型:int fun(int a,int b);

//注意:部分源程序给出如下。请在函数fun的花括号中填入所编写的若干语句。

int fun(int a,int b)

{

int m,n,c,d,s;

m=a/10;

n=a%10;

c=b/10;

d=b%10;

s=m*1000+d*100+n*10+c;

return s;

}

void main()

int c;

c=fun(45,12);

printf("%d",c);//cout<

}

//编写程序,输出下列三角形:

// 4 4 4 4 4 4 4

// 3 3 3 3 3

// 2 2 2

// 1

#include

main()

{

int i,j;

for(i=4;i>=1;i--)

{

for(j=1;j<=4-i;j++)

printf(" ");

for(j=1;j<=2*i-1;j++)

printf("%2d",i);

printf("\n");

}

}

//输出1至100之间每位数的乘积小于每位数的和的数#include

void main ( )

{

int n,k=1,s=0,m ;

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

{

k=1 ; s=0 ;

m=n;

while (m>=1)

{

k*=m%10;

s+=m%10;

m=m/10 ;

}

if(k

}

}

C语言填空选择判断1

选择题 1.已知大写字母A的ASCII码值是65,小写字母a的ASCII码值是97,则用八进制表示的字符常量'\101'是()。 A.字符A B.字符a C.字符e D.非法的常量 2.下列程序段的输出结果为()。float k=0.8567;printf("%4.lf%%",k*100); A.85.6% B.85.6%% C.85.7% D. .875 3.下面的scanf函数输入数据,使得a=10,b=15,s1='S',s2='s',x1=1.5,x2=-3.75,x3=67.8, 正确的键盘输入方法是( ). (用"[CR]"表示回车,U表示空格) main() {int a,b; float x1,x2,x3; char s1,s2; scanf("%5d%5d%c%c%f%f%*f%f",&a,&b,&s1,&s2,&x1,&x2,&x3); } A、10UUU15Ss1.5U-3.75U+1.5U67.8[CR] B、10UUU15USUs1.5U-3.75U+1.5U67.8[CR] C、10UUU15USUsU1.5U-3.75U+1.5U67.8[CR] D、10UUU15Ss1.5U-3.75U+1.5,67.8[CR] 4. C语言的if语句中,用作判断的表达式为( )。 A、任意表达式 B、算术表达式 C、逻辑表达式 D、关系表达式 5.以下程序的输出结果是:( ) main() {int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); } A、6 B、5 C、7 D、4 6.以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);()。 A、3次 B、循环次数不定 C、4次 D、是无限循环 7.以下程序的执行结果是( )。 main() { int num = 0; while( num <= 2 ) { num++; printf( "%d,",num ); } } A、0,1,2 B、1,2,3, C、1,2,3,4, D、1,2, 8.以下不能正确进行字符串赋初值的语句是()。 A、char str[5]="good!"; B、char str[5]={'g','o','o','d'}; C、char *str="good!"; D、char str[]="good!"; 9.函数调用:strcat(strcpy(str1,str2),str3)的功能是( )。 A、将串str1复制到串str2中后再连接到串str3之后

填空c语言选择题

填空 1给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。 2 给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。 3 给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各结点数据域之和作为函数值返回。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 4 人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。 5 人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。6给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。 7 给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。 8 给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。 9 给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长

(完整版)C语言选择题(附答案)

第一单元C语言概述 一、选择题 1、C语言中主函数的个数为(A)个。 A)1 B)2 C)无穷个D)任意个 2、以下关于C语言描述错误的是(D)。 A)一个C程序总是从main函数开始执行T B)每个语句和数据声明的最后必须有一个分号T C)C语言的注释符是以“/*”开始并以“*/”结束的T D)一个C程序可以包含多个main函数F 3、C 语言源程序文件后缀为(C )。 A).EXE B).OBJ C).C D).ASM 4、C语言是由(C )组成的。 A)子程序B)主程序与子程序C)函数D)过程 5、C语言属于(B )语言 A)机器语言B)汇编语言C)高级语言D)面向对象语言 第二单元C语言基础 一、选择题 1、C语言中普通整型变量int在内存中占(B )字节。 A)1 B)2 C)3 D)4 2、下列不是C语言基本数据类型的是(A )。 A)字符型B) 整型 C) 浮点型D) 结构体 3、有关自增、自减运算,以下只有(D )是正确的。 A) ---f B) ++78 C) a—b++ D) d++ 4、已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (AB)的值是(A )。 A)0 B)10 C)1 D)5

5、若有x=1,y=2,z=3,则表达式(x=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 7、判断整型变量digit是否为数字的正确表达式是(C )。 A) ‘0’<=ch<=‘9’B) (ch>=‘0’)&(ch<=‘9’) C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch) 8、一个C程序的执行是从(A )。 A)本程序的main函数开始,到main函数结柬 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 9、在以下标识符中,合法的是(C ) A)if B)0xy C)_xy D)case 10、C语言中各种类型的数据其实决定了占用内存的字节数。float占(C )。 A)一字节B)二字节C)四字节D)八字节 11、下列各选项中,(A )是有效的标识符。 A)ab B)3day C)day-3 D)#abc 12、以下叙述正确的是(C ) A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中不允许a=10这种赋值。 C) 在C程序中,%是只能用于整数运算的运算符 D) 在C程序中,无论是整数还是实数,没有什么区别 13、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( B )。 A)132↙B)1,3,2↙ C)a=1 b=3 c=2↙D)a=1,b=3,c=2↙ 14、设整型变量a为5,使b不为2的表达式是( C )。 A)b = a/2 B)b = 6-(--a) C)b=a%2 D)b=a>3?2:1

C语言复习卷带答案

姓名:__________________年 级专业:__________________ 学号:__________________ 凡年级专业、姓名、学号错写、漏写或字迹不清者,成绩按零分记。 …………………………密………………………………封………………………………线………………………… 《复习卷》试卷 一、单选题(每题1分,共计30分) 1、下列选项中,不合法的变量是(D )。 A 、int x = 3; B 、char ch = 'c' C 、float f ; D 、case c; 2、下列选项中,不合法的常量是(D )。 A 、2 B 、'\n' C 、'a' D 、'\483' 3、关于#include这句代码,下列描述中错误的是(C ) A 、"#"是预处理标志,用来对文本进行预处理操作 B 、include 是预处理指令 C 、一对尖括号可以去掉 D 、stdio.h 是标准输入输出头文件 4、假设a 、b 、c 、d 、m 、n 均为int 型变量,且a= 5、b= 6、c= 7、d= 8、m=2、n=2,那么逻辑表达式(m=a>b)&&(n=c>d)运算后,n 的值为( C )。 A 、0 B 、1 C 、2 D 、3 5、C 语言程序的三种基本结构是( A )。 A 、顺序结构,选择结构,循环结构 B 、递归结构,循环结构,转移结构 C 、嵌套结构,递归结构,顺序结构 D 、循环结构,转移结构,顺序结构 6、关于下面的for 循环语句 int i,k; for(i = 0,k = -1;k = 1;i++,k++) printf(“ *****”); 下列选项中,描述正确的是(B ) A 、判断循环结束的条件非法 B 、是无限循环 C 、只循环一次 D 、一次也不循环 7、以下定义语句中,错误的是( D )。 A 、int a[]={1,2}; B 、char *a[3]; C 、char s[10]="test"; D 、int n=5,a[n];

C语言程序设计选择填空习题及答案

习题一 一、选择题 1.C程序的基本单位是(A)。 A.函数B.文件C.语句D.字符 2.C程序中的变量(B)。 A.不用说明B.先说明后引用 C.先引用后说明D.引用和说明顺序无关 3.变量的说明在(B)。 A.执行语句之后B.执行语句之前 C.执行语句当中D.位置无关 4.C语言是一种(C)。 A.机器语言B.符号语言 C.高级语言D.面向对象的语言 二、填空题 1.一个C程序总是从主函数开始执行。 2.结构化程序由顺序、选择、循环三种基本结构构成。 3.一个C程序只有一个名为main的主函数。 4.C程序中的每个语句以分号结束。 5.C程序中,函数由函数首部和函数体组成。 6.每个基本结构有一个入口和一个出口,没有死循环和死语句。7.算法是计算机解决问题所依据的步骤。 习题二 一、选择题 1.下列数据中属于字符串常量的是( B)。 A.ABC B."ABC" C.'abc' D.'A' 2.在计算机内存中,'\n'占用的字节数是( C)。 A.4 B.3 C.1 D.2 3.字符串"ABC"在内存中占用的字节数是( D)。 A.6 B.8 C.3 D.4 4.在C语言中,合法的长整型常数是( B)。 A.568701400 B.0L C.0.03546287 D.2.654e11 5.char型常量在内存中存放的是( A)。 A.ASCII代码值B.BCD代码值 C.十进制代码值D.内码值 6.下列各项中正确的标识符是( D)。 A.?bb B.a=8 C. b.βD.b_4 7.下列不正确的转义字符是( D)。 A.\\ B.\ 0 C.\" D.0x4

8.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。 A.0 B.1 C.2 D.3 9.设a的值为5,执行下列语句后,b的值不为2的是( C)。 A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/2 10.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。 A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,2 11.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( D)。 A.3 B.0 C.9 D.-12 12.在下列运算符中,优先级最高的是( B)。 A.&& B.% C.= D.>= 13.设整型变量a的值为3,则计算表达式a---a后,表达式的值为(B)。 A.1 B.0 C.2 D.表达式出错 14.设整型变量a、b、c的值均为2,表达式a---b+++c++的结果是( C)。 A.6 B.9 C.2 D.表达式出错 15.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( D)。 A.1 B.2.5 C.2 D.2.0 16.下列表达式中符合C语言语法的赋值表达式是( C)。 A.a=4+b++c=a+8 B.a=4+b++=a+8 C.a=(4+b,b++,a+8) D.a=4+b,c=a+8 17.若有以下定义:char a;int b;float c;double d;,则表达式a*b+d-c的值的类型为( D)。 A.int B.float C.char D.double 二、填空题 1.在内存中存储"A"要占 2 个字节,存储'A'要占 1 个字节。 2.符号常量的定义方法是 #define 常量名常量。 3.无符号基本整型的数据类型符为 unsigned int双精度实型数据类型符为 double ,字符型数据类型符为 char 。 4.十进制数673的二进制、八进制和十六进值数分别为 1010100001 、 2412 和 2A1 。 5.在C语言中,书写八进制数时必须加前缀 0 ;书写十六进制数时必须加前缀 0x 。6.在微机上,int型、short型、long型、float型和double型数据一般在内存中分别占 2 字节、 2 字节、 4 字节、 4 字节和 8 字节。 7.设有下列运算符:<<、+、++、&&、>=,其中优先级最高的是 ++ ,优先级最低的是 && 。8.设x、y为int型变量,且x=1,y=2,则表达式1.0+x/y的值为 1.0 。 9.设整型变量x、y、z均为5,则: ①执行x-=y-z后,x的值为 5 。 ②执行x%=y+z后,x的值为 5 。 10.数学式 a b×c 的C语言表达式为 a/b*c) 。 三、简答题 1.字符常量与字符串常量有什么区别? 2.对于Turbo C系统来说,char型变量与int型变量在内存中存储数据的区别是什么?3.整型变量可细分为哪六类? 4.什么是一个实型数据的规范化指数形式?

C语言选择、填空、判断题

一、单项选择题(17道小题,共20分) 1、以下叙述中正确的是( C )。(1分) A、 C语言比其他语言高级 B、 C语言可以不用编译就能被计算机识别执行 C、 C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D、 C语言出现的最晚,具有其他语言的一切优点 2、以下说法正确的是( C )。(1分) A、C语言程序总是从第一个函数开始执行 B、在C语言程序中,要调用函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分 3、下列可用于C语言用户标识符的一组是( B )。(1分) A、 void define WORD B、 a3_b3 _123 Car C、 For abc case D、 2a DO sizeof 4、设int a=3,b=4,c=5;表达式(a+b)>c&&b==c的值是( C ) 。(1分) A、2 B、-1 C、0 D、1 5、以下关于循环体的描述中,( C )是错误的。(2分) A、循环体中可以出现break语句 B、循环体中还可以出现循环语句 C、循环体中不能出现continue语句 D、循环体中可以出现switch语句 6、While(x)中的x相当于( D )。(2分) A、x==0 B、x==1 C、x!=1 D、x!=0 7、以下关于switch语句和break描述中 , ( A ) 是正确的。(2分) A、在switch语句中,可以根据需要使用或不使用break语句 B、switch语句中必须用break语句 C、break语句只能用于switch语句 D、break语句是switch语句必须的一部分 8、以下对C语言函数的有关描述中,正确的是( B )。(1分) A、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B、C函数既可以嵌套调用又可以递归调用 C、函数必须有返回值,否则不能使用函数 D、C程序中有调用关系的所有函数必须放在同一个源程序文件中、 9、在下面的函数声明中,存在着语法错误的是( A )。(1分) A、int BF(int x ; int y); B、void BC(int a , int); C、void BD(int , int); D、void BE(int , int=5) 10、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( B )。(1分) A、地址传递 B、单向值传递 C、由实参传给形参,再由形参传回实参 D、传递方式由用户指定 11、一个程序源文件中全局变量作用范围为( D )。(1分) A、本文件的全部范围 B、本程序的全部范围 C、本函数的全部范围 D、从定义该变量位置开始至文件结束 12、若有以下语句:static char x[ ]="12345";static char y[ ]={'1','2','3','4','5'};则正确的说法是( B )。(1分) A、 x数组和y数组的长度相同 B、 x数组的长度大于y数组的长度

C语言期末复习题(填空选择判断题)

一、单选题: 1、已知ch是字符型变量,下面不正确的赋值语句是( B )。 A、ch=‘\0’ B、ch=‘a+b’ C、ch=‘7’+‘9’ D、ch=7+9 2、以下4组用户定义标识符中,全部合法的一组是(A )。 A、s_5 B、If C、txt D、int about -max REAL k_2 E2 turbo 3COM _001 3、C语言中的简单数据类型包括( B ) A、整型、实型、逻辑型 B、整型、实型、字符型、枚举型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 4、已知:int i=1,j;执行语句j=-i++;后,j的值是(C ) A、1 B、2 C、-1 D、-2 5、已知:int i=5;执行语句i+=++i;后,i的值是( C ) A、10 B、11 C、12 D、A、B、C答案都不对 7、若x为int型变量, x=6;则执行以下语句后,x的值为( C )。 x+=x-=x*x; A、 36 B、 60 C、- 60 D、-24 8、设d为字符变量,下列表达式不正确的是( D )。 A、d=’g’ B、d=’a’ C、d=97 D、d=”g” 9、若a=1,b=2,c=3,d=4;则条件表达式 a>b?a:c=0||a<=8||a>4||a<10 B、a>=0&&a<=8&&a>4&&a<10 C、(a>=0||a<=8)&&(a>4||a<10) D、a>=0&&a<=8||a>4&&a<10 16、设整型变量a值为9,则下列表达式中使b的值不为4的表达式:( C )。 A、 b=a/2 B、b=a>5?4:2 C、b=a%2 D、b=8-(3,a-5) 17、执行以下语句后b的值为( D )。

C语言选择判断题

第一套题判断选择 判断: 1:变量根据其作用域的范围可以分作局部变量和全局变量。 2:c语言的switch语句中的case后只能为整形或字符型常量或常量表达式。 3:两个字符串中的字符个数不相同时也可以进行字符串大小的比较。 4:循环结构中的continue语句是整个循环终止执行。 5:char*p=”girl”;的含义是定义字符型指针变量p,p的值是字符串“girl”. 选择题: 1:设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为()A:float B:int C: char D:double 2: C语言规定,在一个源程序中,main函数的位置() A:必须在最开始B:必须在系统调用的库函数的后面 C:可以任意D:必须在最后 3:C语言的if语句嵌套时,if与else的配对关系是() A:每个else总是与它上面的最近的if配对B每个else总是与最外层的if配对 C:每个else与if的配对是任意的D:每个else总是与它上面的if配对 4:下列字符序列中,不可用做C语言标识符的是() A:b70 B:#ab C:symbol D:a_1 5 : 整形变量x=1,y=3,经下列计算后,x的值不等于6的是() A:x=(x=1+2,x*2) B:x=y>2?6:5 C: x=9-(——y)—(y——)D:x=y*4/2 6: 若有下列定义,则对a数组元素A[2]地址的正确引用是() Int a[5],*p=a; A:*(p+5) B:*p+2 C:*(a+2) D: *&a[5] 7: 在C语言中,能代表逻辑值“真”的是() A:True B: 大于0的数C:非0整数D:非0的数 8 :任何一个C语言的可执行程序都是从————开始执行的, A:程序中的第一个函数B:main ( )函数的入口处 C:程序中的第一条语句D:编译预处理语句 9:下列语句中,不正确的是() A:char a[2]={1,2}; B : int a[2]={‘1’,’2’}; C:char a[2]={‘1’,’2’,’3’}; D: char a[2]={‘1’}; 10:C语言中不可嵌套的是(——) A:函数调用B:函数定义C:循环语句D:选择语句 第二套题的选择题 判断 1: c语言的switch语句case后可为字符和整型常量表达式或有确定值的变量及表达式,2: 如果有一个字符串。其中第十个字符为’\n’,则此字符串的有效字符为9个, 3: 两个字符串中的字符个数不同时也可以进行字符串大小比较。 4: 如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。 5: C语言的switch语句中case后只能为整型或字符型常量表达式。 单选 1: 若有说明:int a[3][4]={0},则下面正确的叙述是()。

C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是( ) A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n ”,i,j,k);} 执行后的输出结果是( ) A )1,1,2 B )2,2,1 C )2,2,2 D )2,2,3 9、有以下程序: #include void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n ”,s);} 程序执行后的输出结果是( ) A )自然数1~9的累加和 B )自然数1~10的累加和

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

《C语言程序设计》试题七 (1) 一、 ........................................................................ 填空题 1 二、 ........................................................................ 选择题 1 三、判断题 3 四、 .................................................................... 程序填空题 3 五、 ................................................ 阅读程序,写出下列程序段的结果 4 六、 ........................................................................ 编程题 5 《C语言程序设计》试题七答案.................. 错误!未定义书签。 « C语言程序设计》试题七 一、填空题 1 •在C语言程序设计中,正确的标识符是由数字,字母,下划线组成的。 2 •设x=4, y=(++x)+(++x);那么y的值为_11_,表达式执行后,变量x的值为_6_。 3•一个指针是指是用来存放变量的地址 4 •能够构成一个数组,其元素满足的特点是—同一类型;那么,构成结构体的成员可以 是不同类型。 5 .下面运算符< % ++ = 按照优先级从高到低排列顺序为%,++,<,=。 6. C程序设计中语句后的符号/*……*/所起作用是解释说明即注释。 7 .写出下面表达式的值 3*5/7+7%3 3_ x=2 ; y=4; (x++)+y _6__ 3+4>=7-10_1_ 3>4 ? 3%2: 1__1___ x=2,y=2;++x||++y__1__ x=3 ; x+=x-=2 _2_ 二选择题

C语言期末试题及答案

C语言期末考试题及答案 一. 单选题(共20题,每题2分,共40分) 1. 以下运算符中优先级最高的是() A.< B.+ C.&& D .! 2. 下列说法正确的是() A. 在执行C语言程序时不是从main函数开始的 B. C语言程序书写格式严格,一行内必须写一个语句 C. C语言程序书写格式自由,一个语句可以分写在多行上 D. C语言程序书写格式严格,一行内必须写一个语句,并要有行号 3. 下面的符号常量定义中,正确的是() A.#define PI 3.14; B.#include PI 3.14; C.#define PI=3.14 D.#define PI 3.14 4. 以下程序的输出结果是 ( ) fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf("%d",a); } A.0 B.29 C.31 D.无定值 5. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回实参 D.传递方式由用户指定 6. 假设int型变量占两个字节的存储单元,若有定义: int x[10]={0,2,4};

则数组x在内存中所占字节数为______。 A.3 B.6 C.20 D.10 7. 下列合法的数组定义是_________。 A.int a[]=”string”; B.int a[5]={0,1,2,3,4,5}; C.char a=”string”; D.char a[]={0,1,2,3,4,5}; 8. 若给出以下定义: char x[]="abcdefg"; char y[]={'a','b','c','d','e','f','g'}; 则正确的叙述为__________。 A.数组x和数组y等价 B.数组x和数组y的长度相同 C.数组x的长度大于数组y的长度 D.数组y的长度大于数组x的长度 9. 若定义如下变量和数组_________。 int j; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是_________。 For (j=0;j<3;j++) Printf("%d",x[j][2-j]); A.1 5 9 B.1 4 7 C. 3 6 9 D. 3 5 7 10. putchar函数可以向终端输出一个 A、字符或字符变量值 B、实型变量值 C、字符串 D、整型变量表达式值 11. 以下能正确定义数组并正确赋初值的语句是______。 A.int N=5,b[N][N]; B.int a[1][2]={{1},{3}};

C语言填空题以及答案

1. 一条简单语句是以________字符作为结束符的,一条复合语句是分别以 ________字符和________字符作为开始符和结束符的。 2. 任何一个C++程序至少且只能包含一个________函数,且程序总是从这个函数开始执行,不论这个函数的位置如何。一个函数定义由________和________两部分组成。 3. C++头文件和源程序文件的扩展名分别为________和________。 4. cout与操作符_______配合使用才能显示输出,cin与操作符_____配合使用才能实现输入。 5. 数据类型int,char,bool,float,double, int * 等的类型长度分别为________、________、________、________、________和________。 6. 数值常量46、0173和0x62对应的十进制值分别为________、________和________。 7. 字符串”It\’s\40a\40C++programe!”中包含有__________个字符。 8. 若x=5,y=10,则计算y*=++x表达式后,x和y的值分别为________和 ________。 9. 若x=25,则计算y=x--表达式后,x和y的值分别为________和________。 10. 假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值分别为________和________。 11. 假定x=64,y=88,则x<<2和y>>2的值分别为________和________。 12. 假定x是一个逻辑量,则x&&true的值与________的值相同,x||false的值也与________的值相同。 13. 假定x是一个逻辑量,则x&&!x和x||!x的值分别为________和________。 14. 假定x=10,则表达式x<=10?20:30的值为________。 15. 表达式sqrt(81)和pow(6,3)的值分别为______________和 ______________。 16. 数学算式(1+x)sin48°和axbex+1对应的算术表达式分别为________和 ________。 17. 逻辑表达式:a>=x||b>2*y+10的相反式为:________。 18. 在嵌套的if语句中,每个else关键字与它前面最接近的________关键字相配套。 19. 在for语句中,假定循环体被执行次数为n,则<表达式1>共被计算________次,<表达式2>共被计算________次,<表达式3>共被计算________次。20. 执行for和while循环时,每次是先进行________的判断,然后再执行 ________,执行do循环时则相反。

C语言填空选择判断(2)

第一套 1.C语言源程序文件的后缀是.C,经过编译之后,生成后缀为.OBJ的【目标】文件, 经连接生成后缀.EXE的可执行文件. 2.intx=2,y=3,z=4;则表达式x+y>z&&y==z的值为【0】. 3.若s是int型变量,且s=6,则下面表达式的值是【1】.s%2+(s+1)%2 4.已知i=5,写出语句 a=i++;执行后整型变量a的值是【5】. 5.以下程序运行结果是【503】 void main() {inta=4,b=3,c=5,t=0; if (ab)a=b; if(b>c)b=c; else c=b; c=a; 7.设有如下宏定义:#define SWAP(z,x,y){z=x,x=y,y=z}以下程序段通过宏调用 实现变量A)b内容的交换.请填空将语句补充完整.int a=5,b=16,c;SWAP(【c】,a,b); 8.以下do-while语句中循环体的执行次数是【3】. a=10; b=0; do{b+=2;a-=2+b;} while(a>=0); 9.以下程序的输出结果是【4】 finclude void main() {int a[3][3]={0,1,2,0,1,2,0,1,2},ij,s=1; for(i=0;i<3;i++) for(j=ij<=ij++) s+=a[i][j]; printf("%d\n",s); }

(完整版)c语言选择结构试题带答案

一、选择题 1. 以下非法的赋值语句是 A: n=(i=2,++i); B: j++; C: ++(i+1); D: x=j>0; 2. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2 的值是A: 6 B: 0 C: 2 D: 1 3. 阅读以下程序: main() { int x; scanf(“%d”,&x); if(x--<5) printf(“%d”,x); else printf(“%d”,x++); } 程序运行后,如果从键盘上输人5,则输出结果是()。 A: 3 B: 4 C: 5 D: 6 4. 有如下程序 main0 { int a=2,b=-1,c=2; if(a main() { int a,b,c=246; a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } 输出结果是( )。 A: 2,1 B: 3,2 C: 4,3 D: 2,-1 6.两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是main( ) { int x; scanf("%d",&x);

if(x + + >5) printf("%d",x); else printf("%d\n",x - -); } A: 7 和5 B: 6 和3 C: 7 和4 D: 6 和4 7. 能表示x 为偶数的表达式是 A: x%2==0 B: x%2==1 C: x%2 D: x%2!=0 8. 下面的程序段中共出现了几处语法错误? int a,b; scanf("%d",a); b=2a; if(b>0) printf("%b",b); A: 1 B: 2 C: 3 D: 4 9. C 语言中,逻辑“真”等价于 A: 大于零的数B: 大于零的整数C: 非零的数D: 非零的整数 10. C 语言的switch 语句中,case 后 A: 只能为常量 B: 只能为常量或常量表达式 C: 可为常量及表达式或有确定值的变量及表达式 D: 可为任何量或表达式 11. 已知int i=10;表达式"20-0<=i<=9"的值是 A: 0 B: 1 C: 19 D: 20 12. 设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&&k 的值为 A: 1 B: 2 C: 3 D: 0 13. 逻辑运算符两侧运算对象的数据类型 A: 只能是0 或1 B: 只能是0 或非0 正数 C: 只能是整型或字符型数据 D: 可以是任何类型的数据 14. 能正确表示“当x 的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是() A: (x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B: (x>=1)||(x<=10)||(x>=200)||(x<=210) C: (x>=1)&&(x<=10)||(x>=200)&&(x<=210) D: (x>=1)||(x<=10)&&(x>=200)||(x<=210) 15. 已知x=43,ch=’a’,y=0;则表达式(x>=y&&ch<’b’&&!y)的值是()

相关文档
最新文档