当前位置:文档之家› C语言试题六套

C语言试题六套

C语言试题六套
C语言试题六套

5.根据以下说明语句,则下面的叙述中不正确的是__D___。

struct student

{ int num;

char name[10];

int score;

}stu;

A.struct是定义结构体类型的关键字

B.stu是结构体变量名

C.num, name, score都是结构体成员名

D.stu是结构体类型名

7.以下哪种方法不能对一维数组进行正确的初始化_C、B__。

A.int a[ ]={1,2,3}; B.int a[5]={ };

C.int a[5]=(1,2,3,4,5); D.int a[ ]={2,3,4*5,6};

15.文件中利用fopen函数打开文件,如果以只读方式打开二进制文件,则以下打开方式正确的是_____。

A.r+ B.rb C.wb D.ab

10.设n为float型,m为int型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入的表达式是m=n*100+0.5,n=m/100.0 【强制转换—向零取整】

6.字母A的ASCII码为十进制数65,1为字符型,a的ASCII码为97,0的ASCII码为48.

12.关于以下程序段,说法正确的是__C__。

x=-1;

do

{ x=x*x; }while(!x);

A.死循环B.循环体执行二次C.循环体执行一次D.有语法错误

14.当调用函数时,实参是一个数组名,则向函数传送的是_数组的首地址9.在定义数组时,数组名前的类型是指明数组各元素的类型;数组各元素的类型是相同的,而且是有序的;在引用数组元素时,数组元素的下标可以是常量整型表达式也可以是变量;对整型数组来说,未初始化时,各数组元素的值是不确定的。

14.指针变量只能存放内存储单元的__地址______。

15.在C语言中,当函数返回值的类型缺少时,表示该函数返回值的类型是___int/整型____。

9、C语言中函数返回值的类型是由定义函数时所指定的函数类型决定的。

.二、填空题(5个小题,每题2分,共10分):

4.执行以下程序后,运行结果是__7.000000_____。

#include

void main( )

{ int a=2;

float n=5.888,b;

b=a+(int)n;

printf(“%f\n”,b);}

三、程序分析题,写出程序的运行结果(5个小题,每题4分,共20分):

2.在运行以下程序时,输入“Turbo C++ 3.0”,写出程序的运行结果。#include

void main( )

{ char str[40];

printf("Input a string:");

scanf("%s",str);

puts(str);}

Turbo

3.#include

void f(int y)

{ static int i=5;

int j=3;

j++;

printf(“%d+%d+%d=%d\n”,i,j,y,i+j+y);

i*=2;}

void main( )

{ int x;

for(x=1;x<=2;++x) f(x);}

5+4+1=10

4.#include

void swap(int *pa,int *pb)

{ int *p;

p=pa;

pa=pb;

pb=p; }

void main( )

{ int a=10,b=20;

int *p1=&a,*p2=&b;

if(a

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

10,20 ?

四、程序填空题,将下面程序补充完整(10个填空,每空2分,共20分):

//利用函数形式,求x数组所有元素的平均值并输出。

#include "stdio.h"

void main( )

{ float avg,x[10]={1.2,3.6,4.5,5.1,6.9,7,8,9,10.5,11.3};

①float average(float a[10]);

avg=average(x);

printf("The average is %5.2f\n",avg);

}

float average(float a[10])

{ int i;

float sum=0;

for(i=0;i<10;i++) sum=sum+a[i];

②return(sum/10) ;

}

//编写一个计算字符串长度的函数length。

#include "stdio.h"

void main( )

{ char str[20];

int m;

int length(char *p);

printf("Input a string:\n");

gets(str);

m=length(str) ;

printf("\n the length of str is %d \n",m);

}

int length(char *p)

{ int n=0;

while(*p!='\0' )

{ n++;

p++;

}

return n;

}

}

//输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。#include "stdio.h"

void main( )

{ int i,n=10,a[10];

float avg=0;

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

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

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

{ if( i%3==0 )

printf("\n");

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

}

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

avg=avg+a[i] ;

avg=avg/10;

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

}

5.将字符数组中大写字符改为小写字符,将小写字符改为大写字符,利用指针完成。

#include “stdio.h”

void main( )

{ char str[30]=“Welcome to C Language”,*cp=str;

while(*cp)

{ if(*cp>=…A?&&*cp<=…Z?)

①*cp=*cp+32 ;

else if(*cp>=…a?&&*cp<=…z?)

*cp=*cp-32;

②cp++ ;

}

puts(str);

}

五、程序设计题(3个小题,共20分):

//设三个整型变量a,b,c,编写程序为a,b,c输入数据,并要求a,b,c按由小到大排序后输出。(5分)

#include "stdio.h"

void main()

{

int a,b,c,t;

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

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(b>c)

{t=b;b=c;c=t;}

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

}

//学生成绩可分为五分制与百分制,编程将百分制转换为五分制输出。(5分)

#include "stdio.h"

void main()

{

float score;

printf("input a score:\n ");

scanf("%f",&score);

while(score<0||score>100)

{

printf("Error!Please input again:\n");

scanf("%f",&score);

}

if(score>=90)

printf("A\n");

else if(score>=80&&score<90)

printf("B\n");

else if(score>=70&&score<80)

printf("C\n");

else if(score>=60&&score<70)

printf("D\n");

else

printf("E\n");

}

//编写排序函数sort(int a[ ]),实现对数组a中的元素进行排序,并利用该函数,从键盘输入若干个数(如10个)将其按升序排列。

#include "stdio.h"

#define N 10

void sort(int a[]);

void main()

{

int a[N],i,j;

printf("input %d numbers:\n",N);

for(i=0;i

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

sort(a);

for(i=0;i

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

}

void sort(int a[])

{

int i,j,temp;

for(i=0;i

for(i=0;i

if(a[j]>a[j+1])

{

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

7.为了判断两个字符串s1和s2是否相等,应当使用__D__。

A.if(s1==s2) B.if(s1=s2)

C.if(strcmp(s1,s2))真D.if(strcmp(s1,s2)==0) 假

10.有字符数组x[50],y[50],则正确的输出语句是__B___。

A.printf(″%s″,″%s″,x,y);B.puts(x);puts(y);

C.putchar(x,y);D.puts(x,y);

12.下列叙述中错误的是__A___。

A.主函数中定义的变量在整个程序中都是有效的

B.在其他函数中定义的变量,没有特殊声明在主函数中不能使用

C.形式参数也是局部变量

D.复合语句中定义的变量只在该复合语句中有效

13.设有函数原型、一维数组和变量定义如下:

函数原型void fun(int x[ ],int n);

数组定义int a[4]={1,2,3,4};float b[4]={1.0,2.0,3.0,4.0};

变量定义int m=4,value;

下列函数调用中,正确的是__A___。(函数返回值?)

A.fun(a,m);B.value=fun(a[1],m);

C.value=fun(a,4);D.fun(b,m);

15.以“只读”方式打开文本文件aa.dat,下列语句中哪一个是正确的_____。

A.fp=f open(″aa.dat″,″r+″);B.fp=fopen(″aa.dat″,″a″);

C.fp=fopen(″aa.dat″,″wb″);D.fp=fopen(″aa.dat″,″r″);

9. 执行如下语句:int k;k值不确定

for(k=0;k=1;k++);则该循环执行的次数是__无限次____。

10. 有如下定义:int x[5]={1,3,5,7,9},*p=&x[2];则执行语句printf("%d",*p);的输出结果是___5_____。

11. 有如下结构体定义:

struct date

{ int year;

int month;

int day;

};

struct worklist

{ char name[20];

char sex;

struct date birthday;

}person;

若对结构体变量person的出生年份赋值为1990,则正确的赋值语句是

__person.birthday.day=1990______。

12. C语言提供的预处理命令有___宏定义_____、文件包含和条件编译三种。

//#include "stdio.h"

void f(int b[ ])

{ int i;

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

b[i]*=2;

}

void main( )

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

f(a);

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

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

}

1,2,6,8,10,12,7,8,9,10

4. #include "stdio.h"

int d=1;

fun(int p)

{ static int d=5;

d+=p;

return (d);

}

void main( )

{ int a=3;

printf("%d\n",fun(a+fun(d)));

}

15

//#include "stdio.h"

void main( )

{ char ch[15]={“abcdefg”};

char c,*cp1,*cp2;

int i,n=0;

cp1=ch;

cp2=ch;

while(*cp2!=…\0?)

{ n++;cp2++;}

cp2--;

n=n/2;

for(i=0;i

{ c=*cp1;*cp1=*cp2;*cp2=c;

cp1++;cp2--;

}

puts(ch);

} gfedcba

4.通过调用子函数average,分别求出主函数main中x和y数组的平均值并输出。#include "stdio.h"

float average(float (1)a[],int n )

{ int i;

float sum=0;

for(i=0;i

(2) return (sum/n);

}

void main( )

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

float y[5]={1.5,2.5,3.5,4.5,5.5};

float avg;

avg=average(x,10);

printf("The array x average is %5.2f\n",avg);

avg=average(y,5);

printf("The array y average is %5.2f\n",avg);

}

5.将字符数组中大写字符改为小写字符,将小写字符改为大写字符。

#include "stdio.h"

void main( )

{ char str[30]=“I am a string”,*cp;

(1) cp=str;

while(*cp)

{ if(*cp>=…A?&&*cp<=…Z?)

*cp=*cp+32;

else if(*cp1 >=…a?&&*cp<=…z?)

*cp=*cp-32;

else

*cp=*cp;

(2) cp++;

}

puts(str);

}

五、程序设计题(2个小题,共15分):

1. 求1!-2!+3! -4!+ … -10!。(7分)

7、以下对二维数组a进行不正确初始化的是___A_。

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

C.int a[2][3]={{3,2,1},{1,2,3}}; D.int a[ ][ ]={{3,2,1},{1,2,3}};

10、设有如下函数:

fff(float x)

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

请问fff函数的返回值类型是_C__。

A.与参数x的类型相同B.是void C.是int D.无法确定

11、在C语言程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。

2.C语言中用非零表示逻辑值“真”;

12、下述对C语言字符数组的描述中错误的是__C、D__。

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

B.字符数组中的字符串可以整体输入、输出

C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D.不可以用算术运算符对字符数组中的字符串进行运算

15、若有如下说明,则_C____的叙述是正确的。

struct st

{ int a;

int b[2];

}a;

A.结构体变量a与结构体成员a同名,定义是非法的

B.程序只有在执行到该定义时才为结构体st分配存储单元

C.程序运行时为结构体变量a分配6个字节存储单元

D.不能将结构体类型说明与变量定义紧凑写在一起

4、能够实现局部翻转(0变1,1变0)的位运算是求反。(0 )

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

10.用在循环结构中,可以结束本次循环的语句是continue。

8、C程序的main函数允许有参数。

9、文件打开时使用的函数是__fopen____。

四、读下面程序,从选择项选出相应执行结果(每小题4分,共20分):

1、main()

{char a[]="I am a boy.",b[20],*p1,*p2;

int i;

p1=a;p2=b;

for(;*p1!='\0';p1++,p2++)

*p2=*p1;

*p2='\0';

printf("string b is:");

for(i=0;b[i]!='\0';i++)

printf("%c",b[i]);

}

执行结果是()

string b is:I am a boy.

1、求1+2+…+100的和

main( )

{

int i, __①___;

i=1;

do

{ sum=sum+i;

__②___;

}while(__③___);

printf("%d",sum);

}

2、求100~200间的全部素数。

# include

main( )

{

int m,k,i,n=0;

for(m=101; ___④__;m=m+2)

{ k=sqrt(m);

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

if (m%i==0) __⑤___;

if (i>=k+1){printf("%d",m);__⑥___;}

if(n%10==0) printf("\n");

}

printf ("\n");

}

3、用起泡法对10个输入数排序(从小到大)。

main( )

{

int a[11];

int__⑦___;

printf("input 10 numbers :\n");

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

scanf("%d",__⑧___);

printf("\n");

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

for(i=1; __⑨___;i++)

if (a[i]>a[i+1])

{t=a[i];a[i]=a[i+1]; __⑩___;}

printf("the sorted numbers :\n");

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

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

}

2、设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是_D___

A.…a?&&…b? B.a<=b C.a||b+c&&b-c D.!((a

4、当运行以下程序时,在键盘上从第一列开始输入9876543210(此处代表Enter),则程序的输出结果是_C___。

main( )

{ int a;float b,c;

scanf(“%2d%3f%4f”,&a,&b,&c);

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

}

A.a=98,b=765,c=4321 B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000 D.a=98,b=765.0,c=4321.0

5、设有如下函数定义:int f(char *s)

{ char *p=s;

while(*p!=…\0?) p++;

return (p-s);

}

如果在主程序中用下面的语句调用上述函数,则输出结果为___C_。

printf(“%d\n”,f(“goodbye!”));

A.3 B.6 C.8 D.0

9、以下函数调用语句中,含有的实参个数是_B___。

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

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

10、以下程序的输出结果是__A__。

double f(int n)

{ int i;

double s=1.0;

for(i=1;i<=n;i++) s+=1.0/i;

return s;

}

main( )

{ int i,m=3;

float a=0.0;

for(i=0;i

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

}

A.5.500000 B.3.000000 C.4.000000 D.8.25

12、以下程序中若第一个printf语句输出的是194,则第二个printf语句输出结果是_D___。main( )

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

p=a;

printf(“%x\n”,p);

printf(“%x\n”,p+9);

}

A.212 B.204 C.1a4 D.1a6

13、若有定义:int a[ ]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素的引用不正确的是__D__。

A. a[p-a]

B. *(&a[i])

C. p[i]

D. *(*(a+i))

14、以下程序的输出结果是__A__。

main( )

{ int aa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];

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

{ if(i==0) aa[i][i+1]=*p+1;

else ++p;

printf(“%d”,*p);

}

printf(“\n”);

}

A.23 B.26 C.33 D.36

15、执行下列程序后,y的值是_C___。

main( )

{ int a[ ]={2,4,6,8,10};

int y=1,*p,x;

p=&a[1];

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

y+=*(p+x);

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

}

A.17 B.18 C.19 D.20

16、以下程序的输出结果是__B__。

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

{ *y=*y-1.0;

*z=*z+x;

}

main( )

{ float a=2.5,b=9.0,*pa,*pb;

pa=&a;pb=&b;

sub(b-a,pa,pa);

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

}

A.9.000000 B.1.500000 C.8.000000 D.10.500000 17、下面程序的输出结果是__D__。

#include “stdio.h”

main( )

{ static ch ar b[ ]= “Goodbye”;

char *chp=&b[7];

while(--chp>=&b[0]) putchar(*chp);

putchar(…\n?);

}

A.Goodbye B.gOODBYE C.无任何输出D.eybdooG 18、若有如下说明,则_C___的叙述是正确的。

struct st

{ int a;

int b[2];

}a;

A.结构体变量a与结构体成员a同名,定义是非法的

B.程序只有在执行到该定义时才为结构体st分配存储单元

C.程序运行时为结构体变量a分配6个字节存储单元

D.不能将结构体类型说明与变量定义紧凑写在一起

19、设有如下定义:struct std

{ int a;

float b;

}data ,*p;

若有p=&data;则对data中的成员变量a的正确引用是__B__。

A.(*p).data.a B.(*p).a C.p->data.a D.p.data.a

20、以下程序的输出结果是_D___。

main( )

{ char x=040;

printf(“%d\n”,x=x<<1);

}

A.100 B.160 C.120 D.64

二、填空题(10个小题,每小题2分,共20分):

2、C语言中用__非零值__表示逻辑值“真”。

5、在二维数组初始化时,可以省略数组的_行下标___(行下标/列下标),系统会根据初值的个数,算出该下标的大小。

8、设有宏定义:#define MUL(z) (z)*(z),则执行以下语句后,输出结果为__12__。

printf(“%d\n”,MUL(1+2)+3);

9、若有定义和语句:char str[ ]=“ABCD”,*p=str;

printf(“%d\n”,*(p+4));则输出结果是__0__。

10、能够实现局部翻转(0变1,1变0)的位运算是__异或__。

三、读下面程序,写出执行结果(4个小题,每小题5分,共20分):

1、若运行以下程序时,从第一列开始输入数据:2473代表Enter),写出程序的执行结果。

#include “stdio.h”

main( )

{ char c;

while((c=getchar( ))!=…\n?)

switch(c-…2?)

{ case 0:

case 1 :putchar(c+4);

case 2 :putchar(c+4);break;

case 3 :putchar(c+3);

default:putchar(c+2);break;

}

printf(“\n”);

}

668977

107911 ?

#include “stdio.h”

#include “string.h”

main( )

{ char *p1=“abc”,*p2=“ABC”,str[50]=“xyz”;

strcpy(str+2,strcat(p1,p2));

printf(“%s\n”,str);

}

xyabcABC

四、编程题(2个小题,每小题10分,共20分):

1、编写程序,计算如下公式的值:t=1-1/(2*2)-1/(3*3)-…-1/(m*m)。

例如,若m=5,则应输出0.536389。

要求:利用scanf函数输入m的值。

利用子函数形式,m充当参数,不能只利用main函数形式实现。

2、编写程序,从输入的10个字符串中通过比较,找出最小和最大的字符串进行输出。要求:利用二维字符数组。

利用gets函数进行输入,puts函数进行输出。

//以下程序的输出结果是5.500000

double f(int n)

{ int i;double s=1.0;

for(i=1;i<=n;i++) s+=1.0/i;

return s;

}

main( )

{ int i,m=3;float a=0.0;

for(i=0;i

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

}

//以下程序的输出结果是_7 8 9。

f(int a)

{ int b=0;static int c=3;

b++;c++;

return(a+b+c);

}

main( )

{ int a=2,i;

for(i=0;i<3;i++) printf(“%d\n”,f(a));

}

12.若a、b、c1、c2、x、y均是整型变量,正确的switch语句是__D___。A.switch(a+b);

{ case 1 : y=a+b;break;

case 3 : y=a-b;break;

}

B.switch(a*a+b*b)

{ case 3 ;

case 1 : y=a+b;break;

case 3 : y=a-b;break;

C.switch a

{ case c1 : y=a-b;break;

case c2 : y=a*b;break;

default : x=a+b;

}

D.switch(a-b)

{ default : y=a*b;break;

case 3 : case 4 : x=a+b;break;

case 10 : case 11 : y=a+b;break;

13.在C语言中,以下所列的各函数首部正确的是__C___。A.void play(var a : Integer,var b : Integer) B.void play(int a,b) C.void play(int a,int b) D.void play(a As Integer,b As Integer) 16.下列程序的运行结果是___C__。

main( )

{ int i,j,x=0;

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

{ x++;

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

{ if(j%2) break;

x++;

}

x++;

}

printf(“x=%d”,x);

}

A.x=4 B.x=8 C.x=6 D.x=12

20.下面程序的输出结果是__A___。

void fun(int *x,int *y)

{ printf(“%d %d”,*x,*y);*x=3;*y=4;}

main( )

{ int x=1,y=2;

fun(&y,&x);printf(“%d %d”,x,y);}

A.2 1 4 3 B.1 2 1 2 C.1 2 3 4 D.2 1 1 2

21.下面程序的输出结果是__D___。

#include “stdio.h”

#include “string.h”

main( )

{ char *p1=“abc”,*p2=“ABC”,str[50]=“xyz”;

strcpy(str+2, strcat(p1, p2));

printf(“%s\n”,str);

}

A.xyzabcABC B.zabcABC C.yzabcABC D.xyabcABC 22.以下程序的输出结果是__D___。

void prtv(int *x)

{ printf(“%d\n”,++*x);}

main( )

{ int a=25;

prtv(&a);

}

A.23 B.24 C.25 D.26

23.以下程序中的for循环执行的次数是___C__。

#define N 2

#define M N+1

#define NUM (M+1)*M/2

main( )

{ int i;

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

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

}

A.5 B.6 C.8 D.9

24.以下对二维数组a进行不正确初始化的是___D__。

A.int a[ ][3]={3,2,1,1,2,3};B.int a[ ][3]={{3,2,1},{1,2,3}};C.int a[2][3]={{3,2,1},{1,2,3}};D.int a[ ][ ]={{3,2,1},{1,2,3}};25.若有定义和语句:char s[10];

s=“abcd”;

printf(“%s\n”,s);则结果是__D___。

A.abcd B.a C.“abcd” D.编译不通过

//执行下列程序后,y的值是__B\C___。

main( )

{ int a[ ]={2,4,6,8,10},y=1,*p,x;

p=&a[1];

for(x=0;x<3;x++) y+=*(p+x);

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

}

A.17 B.18 C.19 D.20

27.以下程序的输出结果是_A___。

main( )

{ char s[ ]=“ABCD”,*p;

for(p=s;p

}

A.ABCD

BCD

CD

D

B.A

B

C

D

C.D

C

B

A

D.ABCD

ABC

AB

A

28.对于如下的结构体定义:

struct date { int year,month,day;};

struct worklist

{ char name[20];

char sex;

struct date birthday;

}person;若对变量person的出生年份进行赋值,__C___是正确的赋值语句。

A.year=1976;B.birthday.year=1976;C.person.birthday.year=1976;D.person.year=1976;

29.以下程序的输出结果是__A_。

main( )

{ int aa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];

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

{ if(i==0) aa[i][i+1]=*p+1;

else ++p;

printf(“%d”,*p);

}

printf(“\n”);

}

A.23 B.26 C.33 D.36

30.根据以下定义,能输出字母…M?的语句是___D__。

struct person { char name[9];int age;};

struct person class[4]={“John”,17,“Paul”,19,“Mary”,18,“Adam”,16};

A. printf(“%c\n”,class[3].name);

B. printf(“%c\n”,class[3].name[1]);

C. printf(“%c\n”,class[2].name[1]);

D. printf(“%c\n”,class[2].name[0]);

5.若输入“I am a boy!” ,写出程序的执行结果。

char connect(char *string1 ,char *string2 ,char *string)

{ int i,j;

for(i=0;string1[i]!=…\0?;i++) string[i]=string1[i];

for(j=0;string2[j]!=…\0?;j++) string[i+j]=string2[j];

string[i+j]=…\0?;

}

main( )

{ char s1[100],s2[100],s[100];

printf(“输入string1:\n”);scanf(“%s”,s1);

printf(“输入string2:\n”);scanf(“%s”,s2);

connect(s1,s2,s);

printf(“%s\n”,s);

}

Iam

三、编写程序题(3个小题,共20分):

1.利用scanf函数输入三个整数,按从小到大的顺序输出。(5分)

2.求n!,即计算1*2*3*…*n的值。(5分)

3.输入10个学生的成绩,求平均成绩,并将低于平均成绩的分数输出。(10分)

要求:(1)使用数组存放成绩,数组名为score。

(2)编写三个函数,函数input:输入学生成绩,

函数average:求平均成绩,

函数result:将低于平均成绩的分数输出。

6、以下程序段的输出结果是___D__。

int k,j,s;

for(k=2;k<6;k++,k++)

{ s=1;

for(j=k;j<6;j++) s+=j;

}

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

A.9 B.1 C.11 D.6

11、对于如下的结构体定义:struct date { int year;int month;int day;};

struct worklist

{ char name[20];

char sex;

struct date birthday;

}person;

若对变量person的出生年份进行赋值,__C___是正确的赋值语句。

A.year=1976;B.birthday.year=1976;C.person.birthday.year=1976;D.person.year=1976;

12、如果int *p,a[3]={1,2,3};执行p=a;那么运行printf(“%d”,*p++);输出结果是___A__。A.1 B.2 C.3 D.不确定

13、算法是程序的灵魂,算法是解决“做什么”和“怎么做”的问题;N-S流程图表示算法比传统流程图紧凑易画,尤其是它废除了流程线;传统的流程图表示算法如:顺序、选择、循环三种结构,一般有一个入口,多个出口。

四、程序设计(2*15=30分)

1、下列这个程序是用函数的方式完成编写一个Fibonacci数列, 请补充完成函数number_fibonacci( )的代码。

这个数列有如下特点:第1,2两个数为1,1。从第3个数开始,该数是其前面两个数之和。即:

F1=1 (n=1)

F2=1 (n=2)

Fn=Fn-1+Fn-2 (n>=3)

运行结果为:

1 1

2 3

5 8 13 21

34 55 89 144

233 377 610 987

1597 2584 4181 6765

. . . .

. . . .

程序如下

main()

{ int n;

scanf("%d",&n);

number_fibonacci(n);

printf("\n");

}

void number_fibonacci(int n)

{

}

2、利用所学知识,设计下列程序

打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为

153=1*1*1+5*5*5+3*3*3

C语言程序设计模拟精彩试题3(附问题详解)

《C语言程序设计》模拟试卷三 一、填空题。(每空2分,共16分) 1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。2.一个C语言文件是由若干个组成。 3.设有以下变量定义,并已赋确定的值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为。 4.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式。5.若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。 a[0] a[1] a[2] a[3] a[4] (1)若p已指向存储单元a[1]。通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是。(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是。 二、单项选择题。(每题2分,共40分) 1.设有int x=11; 则表达式(x++ * 1/3) 的值是()。 A) 3 B) 4 C) 11 D) 12 2.下列程序的输出结果是()。 A) 3 B) 3.2 C) 0 D) 3.07 main() {double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d \n”, d*y); } 3.下列程序执行后的输出结果是(小数点后只写一位)()。 A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0

main() { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); scanf("%d",&d); } 4.下列变量定义中合法的是()。 A) short _a=1-.le-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3; 5.设int x=1, y=1; 表达式(!x||y--)的值是()。 A) 0 B) 1 C) 2 D) -1 6.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是()。 A) if (x>0) y=1; B) if(x) else if(x<0)y=-1; if(x>0)y=1; else y=0; else if(x<0)y=-1; else y=0; C) y=-1 D) y=0; if(x) if(x>=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1; 7.以下循环体的执行次数是()。 A) 3 B) 2 C) 1 D) 0 main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--)printf(“%d \n”,i); } 8.以下叙述正确的是()。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。

c语言模拟题目第三套

第三套 若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=32)后,x的值为:( ). A、52 B、16 C、4 D、32 【参考答案】错误 D 【学生答案】 [未答此题] 执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A、11 和 10 B、10 和 11 C、11 和 11 D、10 和 10 【参考答案】错误 B 【学生答案】 [未答此题] 以下程序的输出结果是:( ) main() {int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); } A、6 B、5 C、7 D、4 【参考答案】错误 A 【学生答案】 [未答此题] 执行下面程序段后,i的值是( ). int i=10; switch(i) {case 9: i+=1;

case 10: i--; case 11: i*=3; case 12: ++i; } A、28 B、10 C、9 D、27 【参考答案】错误 A 【学生答案】 [未答此题] 下面有关 for 循环的正确描述是( )。 A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体 C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况 【参考答案】错误 C 【学生答案】 [未答此题] 针对下列程序段回答问题( ). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0) continue; printf("%3d",t); } A、x>=0时什么也不输出 B、最多允许输出100个非负整数 C、printf函数永远也不执行 D、当x<0时整个循环结束 【参考答案】错误 B 【学生答案】 [未答此题] 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是()。 A、for(i=0;i<10;i++)a[i]=getchar(); B、scanf("%s",a); C、gets(a);

C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力 第二十八次等级考试 二级(C与C++语言) 笔试试卷 时间: 2008年4月19 日 上午9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。( 1 ) 2. 数据在计算机内存中的表示是指数据的存储结构。( 2 ) 3. Windows是多用户多任务操作系统。( 3 ) 4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 4 ) 5. 链表可以随机访问任意一个结点,而顺序表则不能。( 5 ) 6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 ) 8. 中断控制方式适用于外存同CPU之间进行大量数据交换。( 8 ) 9. 提供没有错误的程序是提高软件的可维护性的基本措施。( 9 ) 10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 ) 二、选择题(每小题1分,共5分) 1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。 11 (A) 可行性分析(B) 程序编码 (C) 详细设计(D) 需要分析 2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。 12 (A) 1,4,3,2 (B) 3,1,4,2 (C) 2,3,4,1 (D) 3,4,2,1 3. 任何两个并发进程之间(13 )。 13 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 4. 以下的哪个特征不是分时操作系统的主要特征(14 )。 14 (A) 分时性(B) 独占性 (C) 交互性(D) 多路性 5. 需求分析中开发人员主要从用户那里了解(15 )。 15 (A) 软件的维护(B) 软件的结构 (C) 软件做什么(D) 软件的测试

C语言程序设计模拟试题A(附答案)

《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的是(C)。 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}; 4、执行下列程序段后输出的结果是(C)。 x = 9; while (x > 7) {printf(“*”); x- -; } A) ****B) ***C) **D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)。 解析: strcpy(str1,str2); 后,str1[] 里是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的是str1, 因为str1[] 里是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。

A)9B) 8C) 5D) 3 6、若用数组名作为函数调用的实参,则传递给形参的是(A)。 A) 数组的首地址B) 数组第一个元素的值 C) 数组中全部元素的值D) 数组元素的个数 7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为(C)。 A)void B)double C)int D)char 8、下面不能正确进行字符串赋值操作的语句是(C)。 A) char s[5]={"ABCD"};B) char s[5];s="ABCD"; C) char *s;s="ABCDEF";D) char *s="ABCD"; 解析:这样理论上的没错的把s指针指向字符串可以改变s指针但不能改变其指向的值正确的应该是这样char s[] = "ABCDEF"; 或char s[8];strcpy(s, "ABCDEF"); 9、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(C)。 A)++p B)++(*p)C) *(++p)D) *(p+=2) 解析: A是把p得地址后移一个int单位长度,即使p指向数组的第二个元素。 B是取得p当前指向的元素值然后加1,即1+1=2; C是先移动p,使其指向第二个元素,然后取得当前指针指向的元素值,即3. D是先使p指向数组的第三个元素,然后去的当前指针指向的元素的值,即5。 10、下面程序的输出结果是(B)。 int m=13; int fun( int x,int y) { int m=3; return( x*y-m); } main( ) { int a=7,b=5;

C语言程序设计试题第3套

C语言程序设计试题(第3套) 一、单项选择题(30分,每题2分) 1.下面关于C语言的说法,错误的是______。 A、一个C程序总是从执行main开始。 B、C程序可以用/<*……*>/ 对程序作注释。 C、C语言本身没有输入输出语句,输入、输出操作由库函数scanf和printf等来完成。 D、在C程序中,数据定义的最后必须写上一个分号。 2.判断字符串s1是否大于字符串s2,应当使用。 A、if (s1>s2) B、if (strcmp(s1,s2)) C、if (strcmp(s2,s1)>0) D、if (strcmp(s1,s2)>0) 3. 下列表达式错误的是______。 A、4/7 B、4.0/7.0 C、(-4)%(-7) D、4.0%7.0 4. 以下能定义为用户标识符的是______。 A、scanf B、printf C、_3com_ D、int 5. 能正确表示a和b 同时为正或同时为负的逻辑表达式是______。 A、(a>=0‖b>=0)&&(a< 0‖b<0) B、(a>=0&&b>=0)&&(a< 0&&b<0) C、(a+b>0)&&(a+b<=0) D、a*b>0 6. 若有以下程序段:int c1=1, c2=2 ,c3; c3=2.0+c1%c2 ; 则执行后,c3的值是______。 A、2.0 B、2 C、3.0 D、3 7.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。 A、scanf("%d%d%d",i,j,k); B、scanf("%d %d %d",&i,&j,&k); C、scanf("%d,%d,%d",&i,&j,&k); D、scanf("%d,%d,%d",i,j,k); 8. 以下程序输出结果是。 A、7 B、6 C、5 D、4 main() { int m=5; if(m++>5) printf("%d\n",m); esle printf("%d\n",m- -); } 9. 有以下程序段 #include main() {int sum=0,i; scanf("%d",&i); do {sum=sum+i;i++;} while(i<=10); printf("sum=%d\n",sum); } 若运行时从键盘输入11,则循环体会执行。 A、11次 B、10次 C、1次 D、0次 10.二维数组int a[4][4]前5个元素在内存中的排列次序为。 A、a[0][0] a[1][1] a[2][2] a[3][3] a[4][4] B、a[0][0] a[0][1] a[0][2] a[0][3] a[1][0]

计算机二级c语言第3套笔试模拟试卷

第3套笔试模拟试卷 一选择题: (1)下列叙述中正确的是()。 A)一个算法的空间复杂度大,则其时间复杂度必定大 B)一个算法的空间复杂度大,则其时间复杂度必定小 C)一个算法的时间复杂度大,则其空间复杂度必定小 D)上述三种说法都不对 (2)下列叙述中错误的是()。 A)线性表是由n个元素组成的一个有限序列 B)线性表是一种线性结构 C)线性表的所有结点有且仅有一个前件和后件 D)线性表可以是空表 (3)数据的存储结构是指()。 A)数据所占的存储空间 B)数据的逻辑结构在计算机中的存放形式 C)数据在计算机中的顺序存储方式 D)存储在计算机外存中的数据 (4)下面对对象概念描述正确的是()。 A)任何对象都必须有继承性 B)对象是属性和方法的封装体 C)对象间的通信靠信息传递 D)方法是对象的静态属性 (5)有下列二叉树,对此二叉树前序遍历的结果为()。 A)ACFXDBEYZ B)ABEFXYZCD C)ABCDEFXYZ D)ABDYECFXZ (6)两个或两个以上模块之间联系的紧密程度称为()。 A)耦合性 B)内聚性 C)复杂性 D)数据传输特性 (7)在下列关于二叉树的叙述中,正确的一项是()。 A)在二叉树中,任何一个结点的度都是2 B)二叉树的度为2 C)在二叉树中至少有一个结点的度为2 D)一棵二叉树的度可以小于2

(8)待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。 A)3 B)5 C)7 D)9 (9)以下所述中,是软件调试技术的是()。 A)错误推断 B)集成测试 C)回溯法 D)边界值分析 (10)设有如下关系表: A)T=R/S B)T=R×S C)T=R∩S D)T=R∪S (11)C语言程序的执行是()。 A)从程序的主函数开始,到程序的主函数结束 C)从程序的主函数开始,到程序的最后一个函数结束 B)从程序的第一个函数开始,到程序的最后一个函数结束 D)从程序的第一个函数开始,到程序的主函数结束 (12)下列不合法的用户标识符是()。 A)j2_KEY B)Double C)4d D)_8_ (13)若变量已正确定义,以下表达式错误的是()。 A)a/b+c B)a%(5.0) C)a=1/3*(x=y=10,x*2) D)a=b=c (14)下列不合法的数值常量是()。 A)011

C语言三套考题与答案

C语言三套考题与答案(1) 选择题 1、在计算机上可以直接运行的程序是(C)。 A、高级语言程序 B、汇编语言程序 C、机器语言程序 D、C语言源程序 2. 以下正确的C语言自定义标识符是__A____。 A. _1a B. 2a_ C. do D. a.12 3、C语言程序的基本单位是(B )。 A、程序行 B、语句 C、函数 D、字符 4、下列运算符的优先级最高的是(C)。 A、关系运算符 B、赋值运算符 C、算术运算符 D、逻辑运算符 5.逗号表达式a=2*6,a*3,a+5的值是_____B____。 A. 12 B. 17 C.36 D. 41 6、‘A’ + 3 的结果是(B )。 A.’A’B.’D’的ASCⅡ码C.65 D.3 7、sizeof(float) 是(C )。 A、一种函数调用 B、一个不合法的表示形式 C、一个整形表达式 D、一个浮点表达式 8、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是(C)。 A、1 B、2 C、2.0 D、2.5 9、设有如下定义语句 Char ch=?\77?; 则下列说法中正确的是(A )。 A、ch中含有1个字符 B、ch中含有2个字符 C、h中含有3个字符 D、语法出错 10)若有定义语句:int x=10;,则表达式x-=x+x的值为( B ) A)-20 B)-10 C)0 D)10 11、以下程序运行后的输出结果是(B )。 #include void main() {

int a=666,b=888; printf(“%d\n”,a,b); } A、错误信息 B、666 C、888 D、666,888 (12)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是 ( D ) (A)必须是逻辑值(B)必须是整数值 (C)必须是正数(D)可以是任意合法的数值 13、假定从键盘输入23456< 回车>,下面程序的输出结果是:(C )void main ( ) { int m,n;scanf(“%2d%3d”,&m,&n);printf(“m=%d n=%d\n”,m,n);} A、m=23 n=45 B、m=234 n=56 C、m=23 n=456 D、语句有错误 14、以下程序执行后的输出结果是(D )。 #include void main() { int i=1,j=2,k=3; if(i++= =1&&(++j= =3||k++= =3)) printf(“%d?%d?%d\n”,i,j,k); } A、1 2 3 B、2 3 4 C、2 2 3 D、2 3 3 15. 设int a=11, b=2;执行下述程序段后,变量a和b的值分别是___B____。 do { a/=b++; }while(a>b); A. 1,3 B. 1,4 C. 2,3 D. 2,4 (16)有以下程序 #include main() { int s; scanf(“%d”,&s); while(s>0) { switch(s) {case 1:printf(“%d”,s+5); case 2:printf(“%d”,s+4);break; case 3:printf(“%d”,s+3); default:printf(“%d”,s+1);break; } scanf(“%d”,&s); }

c语言模拟试题(3)

模拟试题二 一.选择填空(选择一个正确答案,将其对应字母填在横线上)(25分)1.C程序中,unsigned int x;定义的变量取值范围为; A:0~255 B:0~65535 C:0~32767 D:0~2147483647 2.C语言中,正确的字符与字符串表示方式为; A: char a=…a?,b=“abc”;B:char a=…a?,b[]= “abc”; C: char a=“a”,b[]=“abc”;D:char a=…a?,b[2]= “abc”; 3.若a是float型变量,b是int型变量,以下输入语句合法的是; A:scanf(“%6f%f”,&a,&b) B:scanf(“%8f%d”,&a,&b) C:scanf(“%6d%d”,&a,&d) D:scanf(“%6f%c”,&a,&d) 4.如果i=1,执行j=++i;k=i++;其j、i和k的值是; A:2,2,2; B:1,2,3 ; C:1,1,1; D:2,3,2 5.在if(条件)语句执行时,当条件为时C语言认为是“真”; A:TRUE; B:. T . C:0 D:非零值 6.如果int a[4]={1,2,3,4},*p=&a[2];执行p++;其*p+a[0]的值为; A:2B:3 C:4 D:5 7.设int a,b,c; 且a=10;b=4;a/=b;则表达式(a/b?b+a:b-a)之值是; A:0. 5 B:6; C:2;D:-2 8.对于int a[10];正确的赋值语句是__; A:*(a+2)=4;B:a=6;C:a+2=4;D:*(a+15)=4; 9.设int x,a,b,c;计算表达式x=(a=4,b=16,c=32)后,x的值是; A:4B:16C:32D:52 10.对于int a[ ][3]={1,2,3,4,5,6, 7, 8, 9,10}说明语句, 且有:数据元素a[1][2]+a[3][1]的值为_________; A:15 B:16C:8 D:6 11.int n=97; switch(n/10-4) { case 2: n=n+1; case 3: n=n*2; case 5: n=n-2; case 7: n=n+3;break; default: n=n/2; } n的正确结果值是________ A:95B:96C:97D:98 12.已知int i=j=2; char *a="abcdefg", c; 执行c=*(a=a+3);c的值是__________。 A.‘b’ B:‘c’ C:‘d’D:‘e’ 13.阅读下列程序,结果是 main() { int a=5,b=0,c=0; if(a=b+c) printf("***\n");

C语言程序设计模拟试题3(附答案)

《C 语言程序设计》模拟试卷三 一、填空题。(每空2分,共16分) 1 ?在内存中,短整型变量占 _______ 字节,单精度实型变量占 ___________ 字节,字符型变量占 ____________ 字 节。 2?一个C 语言文件就是由若干个 _______________ 组成。 3 ?设有以下变量定义,并已赋确定得值 char w; int x; float y; double z; 则表达式:w*x+z-y 所求得得数据类型为 ____________________________ 。 4?若x 为int 类型,请以最简单得形式写岀与逻辑表达式 !x 等价得C 语言关系表达 式 _______________________________ 。 5.若有如下图所示五个连续得 int 类型得存储单元并赋值如下图,a[0]得地址小于a[4]得地址。p 与s 就 是基类型为int 得指针变量。请对以下问题进行填空。 a[0] a[1] a[2] a[3] a[4] (1 )若p 已指向存储单元 a[1]。 是 。 (2)若指针s 指向存储单元a[2],p 二、单项选择题。(每题 通过指针p,给s 赋值,使s 指向最后一个存储单元 a[4]得语句就 指向存储单元a[0],表达式s-p 得值就是 ________________________________ 2分,共40分) 1.设有int x=11; 则表达式(x++ * 1/3) 得值就是( ) A ) 3 B ) 4 C ) 11 D ) 12 2 ?下列程序得输岀结果就是() A) 3 B) 3、2 C) 0 main() {double d=3、2; int x,y; x=1、2; y=(x+3、8)/5、0; printf( “ %d \n ” , d*y); } 3?下列程序执行后得输岀结果就是 A) 6 6 6、0 6、0 C) 6 6 6、0 6、 7 D) 3、07 (小数点后只写一位)( ) B ) 6 6 6、7 6、7 D ) 6 6 6、7 6、0 main() { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); scanf("%d", &d); } 4?下列变量定义中合法得就是(

C语言模拟试题三

模拟试题Ⅲ 一、选择题(本大题30分,每小题2分) 1.下列有关C程序的说法中,正确的是:。 A)一个C程序中只能有一个主函数且位置任意; B)一个C程序中可有多个主函数且位置任意; C)一个C程序中只能有一个主函数且位置固定; D)一个C程序中可以没有主函数。 2.以下叙述中不正确的是:。 A)在C程序运算符中,逗号运算符优先级最低; B)C程序中,AHP和ahp代表两个不同的变量; C)C程序中,整数和实数在内存中存放形式相同; D)在C程序中, %是只能用于整数运算的运算符. 3.已知ch是字符型变量,下面不正确的赋值语句是:。 A)ch=…\0? B)ch=…a+b? C)ch=…7?+…9? D)ch=7+9 4.设有如下定义 int x=10,y=5,z; 则语句printf("%d\n",z=(x+=y,x/y)); 的输出结果是。 A)1 B)0 C)4 D)3 5.设有如下定义:char ch=…z?,则执行下面语句后变量ch是值为:。 ch=(…A?<=ch&&ch<=…Z?)?(ch+32):ch A)A B)a C)Z D)z 6.若x和y都为float型变量,且x=3.6, y=5.8 执行下列语句后输出结果为:。 printf(“%f”,(x,y)); A)3.600000 B)5.800000 C)3.600000,5.800000 D)输出符号不够,输出不正确值 7.设有两字符串”Beijing”、”China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把”China”连接到”Beijing”之后的为:。 A)strcpy(str1,str2); B)strcpy(str1, “China”); C)strcat(str1,”China”) D)strcat(“Beijing”,str2); 8.以下对一维整型数组a的正确说明是。 A)int a(10); B)int n=10,a[n]; C)int n; scanf(“%d”,&n); int a[n]; D)#define SIZE 10 int a[SIZE]; 9.设有如下程序段,则其执行结果为:。 static int a[ ]= { 1,2,3,4 }, *p ; int i; p=a; (p+3) + =2; printf(“%d”,*(p+3) ); A)0 B)6 C)a[3]地址D)不正确的值10.若I为整型变量,则下列程序段的运行结果为。 i=322; if(i%2==0) printf(“#####”) else printf(“*****”); A)##### B)#####***** C)***** D)有语法错误,无法输出结果 11.已知int x=30,y=50,z=80;以下语句执行后变量x、y、z的值分别为:。 if (x>y||xz) z=x; x=y; y=z; A)x=50, y=80, z=80 B)x=50, y=30, z=30 C)x=30, y=50, z=80 D)x=80, y=30, z=50 12.下面程序段的运行结果是:。 x=y=0; while(x<15) y++, x+=++y; printf(“%d,%d”, y, x); A)20, 7 B)6, 12 C)20, 8 D)8, 20 13.若有语句int *point , a =45; point = &a; 下面均代表同一变量地址的一组选项是:。 A)&a point *&a B)&*a &a *point C)point &point &a D) &a, &*point point 14.以下程序的运行结果是:。 main( ) { int a=2, i ; for(i=0;i<3;i++) printf(“%4d”,f(a) ) ; } f( int a) { int b=0; static int c=3 b++; c++; return(a+b+c); } A)7 10 13 B)7 7 7 C)7 9 11 D)7 8 9 15.若有如下定义: int a[3][3]={1,2,3,4,5,6,7,8,9},i ; 则下列语句的输出结果是:。 for (i=0;i<=2;i++) printf(“%d”,a[i][2-i]); A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7 二、判断题(本大题10分,每小题1分) 1.C语言本身没有输入输出语句,输入输出操作都是通过调用库函数来实现的。() 2.在C语言中,int、char和short三种类型数据在内存中所占用的字节数都是由用户自己定义的。() 3.在C程序中一行内可以写几个语句,一个语句可以分写在多行上。因此,并不是每一条C语句都必须有一个分号的。() 4.在C语言的if语句中,用作条件判断的表达式只能是关系和逻辑表达式。() 5.在C语言中break和continue都是循环中途退出语句,其中break语句用来跳出一层循环结构;continue语句用来结束一次循环。() 6.C语言中while和do-while循环的主要区别是while语句的循环体至少会被执行一次,而do-while语句的循环体则可能一次也不执行。() 7.数组首地址不仅能通过数组中第一个元素的地址表示,也可以通过数组名来表示。() 8.在C语言中,只有在两个字符串所包含的字符个数相同时,才能比较大小。如字符串”That”与”The”就不能进行大小比较。()9.函数的返回值类型是由函数的类型和return语句中表达式的类型共同决定的,当这两类型不一致时最终起决定作用

c语言模拟题目第四套

第四套 若有说明:int a[3][4];则数组a中各元素()。 A、不能得到确定的初值 B、可在程序的编译阶段得到初值0 C、可在程序的运行阶段得到初值0 D、可在程序的编译或运行阶段得到初值0 【参考答案】错误 A 【学生答案】 [未答此题] 已定义float a; int i;选择正确的输入语句( ). A、scanf("%6.2f%3d", &a,&i); B、scanf("%f%s", &a,&i); C、scanf("%6f%3d",&a,&i); D、scanf("%f%d", a,i); 【参考答案】错误 C 【学生答案】 [未答此题] 执行下面程序段后,k的值是:( ) int k=2; switch(k+1) {case 3:k+=1; case 4:k--;break; case 5:k*=3; case 6:++k; } A、10 B、2 C、28 D、27 【参考答案】错误 B 【学生答案】 [未答此题] 执行下列语句后的输出为()。 int j=-1;

if(j<=1) printf("****\n"); else printf("%%%%\n"); A、%%%% B、**** C、有错,执行不正确 D、%%%%c 【参考答案】错误 B 【学生答案】 [未答此题] 以下程序段中,能够正确地执行循环的是( )。 A、int s=6; m:if(s<100) exit(0); else s-=2; goto m: B、int s=6; do s-=2; while(s); C、for(i=1;i>10;i++) D、static int a; while(a) 【参考答案】错误 B 【学生答案】 [未答此题] 运行结果是" 11 12"的程序段是:请在A处填写正确内容( )。 for(i=1;i<=2;i++) ___A___ A、for(j=1;j<=2;j++)printf("%3d",10*i+j);break; B、{for(j=1;j<=2;j++)printf("%3d",10*i+j);break;} C、for(j=1;j<=2;j++)printf("%3d",10*i+j);continue; D、{for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;} 【参考答案】错误 B 【学生答案】 [未答此题] 对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。 A、将5个初值依次赋给a[6]至a[10] B、将5个初值依次赋给a[0]至a[4] C、因为数组长度与初值的个数不相同,所以此语句不正确 D、将5个初值依次赋给a[1]至a[5] 【参考答案】错误 B 【学生答案】 [未答此题]

C语言考试试题三套

C语言辅导试题一 一、单项选择题(每小题 2 分,共20 分) 1.C 语言程序的三种基本结构是顺序结构、选择结构和______结构。 A、循环 B、递归 C、转移 D、嵌套 2.若x是单精度实型变量,表达式(x = 10/4) 的值是_____ 。 A、2.5 B、2.0 C、3 D、 2 3. 表达式!x 等价于_____。 A、x==0 B、x==1 C、x != 0 D、x != 1 4.若变量已正确定义且k 的值是4,计算表达式( j = k--) 后,_____。 A、j=3, k=3 B、j=3, k=4 C、j=4, k=4 D、j=4, k=3 5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为_____。 A、算术运算、赋值运算、关系运算 B、关系运算、赋值运算、算术运算 C、算术运算、关系运算、赋值运算 D、关系运算、算术运算、赋值运算 6.C语言中,形参的缺省的存储类说明是______。 A、auto B、static C、register D、extern 7.下列语句定义pf为指向float类型变量f的指针,_____是正确的。 A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f; 8.表达式sizeof(“key”) 的值是______。 A、1 B、2 C、3 D、4 9.将程序prog.c编译后运行:prog –nla hello world 则*(*(argv+2)) 是______。 A、?p? B、…-… C、…h? D、…w? 10.若a是整型变量,表达式~(a ^ ~a ) 等价于______。 A、~a B、1 C、0 D、2 二、填空题(每小题 3 分,共24 分) 1.写出语句printf ("%d, %o, %x", 0x12, 12, 012); 的输出结果。 2.写出下列程序段的输出结果。 #define F(x) x - 2 #define D(x) x*F(x) printf("%d,%d", D(3), D(D(3))) ; 3.写出下列程序段的输出结果。 int k ; char *s = “ABC”; for( k=10; k != 0; k-- ) ; printf ( "%d", k ); while( *s++ ) putchar( *s ); 4.写出下列程序的输出结果。 void fun(int k) { static int a; printf(”%d,”, a); a += k; } main() { int k; for (k=1; k<=3; k++) fun(k); }

C语言模拟试题

《C语言程序设计教程实验与练习》(第二版)模拟试题II及答案 一、单项选择题(每题2分,30道题,共60分) 1.下面的程序将输出: main() { float f; int x=1,y=; f=x/y; printf("f=%,y=%#X", f, y ); } = , y=2 = , y=0X2 = , y=0X2 = , y=2 2.下面的程序将输出: #include "" main() { int len; char str[]="a\b\04235\0"; len=strlen(str); printf("%d",len); } A. 10 B. 5 C. 6 D. 7 3.下面的程序将输出: main() { int a=0x31; char *str[]={"this is one. ","this is two. "}; char ch; ch=++a-’0’; switch(ch) { case 1: printf ("%s", str[0]); case 2: printf ("%s", str[1]); default: printf ("no way! "); } } is one. is two. way! is way! 4.下面的程序将输出: main() { int a[5]={1,2,3};

int k,j; for(k=1;k<4;k++) a[k]++; for(j=0;j<5;j++) printf("%d ",a[j]); } 3 4 1 0 3 4 1 0 3 4 0 0 3 4 0 0 5.已知有下面两个变量,将数组a的第2个单元赋值为1的C语句是: int a[10]; int *p; p=a; [2]=1; [1]=1; C.*(p++)=1; D.*(++a)=1; 6.下面程序将输出: void add(int a) { a++; return; } main() { int k; k=; add(k); printf("%d",k); } A. B. C. 3 D. 4 7.下列循环结构中,不是 ..无限循环的是: A. for(i=1, s=0; ; i++) B. i=10; s=s+i ; while(1) {i=i%10+1; if(i>10) break; } C. int i=0; D. i =100; do{ ++i ; }while(i>=0); while(++i%2) i++; 8.若已知int a[3][4],*p;p=(int *)a;那么对数组a的第2行第2列的正确引用是: [2][2] [5] [5] [1][1] 9.已知:int (*p)[20]; 且p的值是0X5000,请问表达式p+2的值是多少? A. 0X5050 B. 0X5002 C. 0X5004 D. 0X5040

大学C语言程序设计考试试题及答案3套

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 D、1 2 3 4 17、以下描述正确的是( ) A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。

第三套二级C语言模拟题

全国高等学校(安徽考区)计算机水平考试 2016模拟题(二级C语言) 第三套模拟 一、单项选择题 1:用计算机进行论文检索,属于计算机在______方面的应用。 A. 科学计算 B. 实时控制 C. 信息处理 D. 人工智能 参考答案:C 2:在计算机中,1GB表示______。 A. 1024K字节 B. 1024M字节 C. 1024K汉字 D. 1024M汉字 参考答案:B 3:计算机硬件系统主要由五大部件组成,下列选项中不属于这五大部件的是_______。

A. 运算器 B. 操作系统 C. 输入设备和输出设备 D. 控制器 参考答案:B 4:在Windows中,命令菜单呈灰色显示意味着____。 A. 该菜单命令当前不能使用 B. 选中该菜单命令后将弹出对话框 C. 选中该菜单命令后将弹出下级子菜单 D. 该菜单命令正在使用 参考答案:A 5:网址https://www.doczj.com/doc/2212553784.html,中http表示______。 A. 超文本传输协议 B. 主机的IP地址或域名 C. 用户名 D. 资源在主机上的存放路径 参考答案:A 6:在一个源程序中,main( )函数的位置______。

A. 必须在最开始 B. 不能在最后 C. 可以在最后 D. 必须在最后 参考答案:C 7:设short int类型的数据占2个字节,则unsigned short int类型数据的取值范围是______。 A. 0~32767 B. 0~65535 C. -32768~32767 D. -256~255 参考答案:B 8:下面能正确表示C语言的字符常量的是______。 A. '\40' B. "A" C. 'AB' D. "\0" 参考答案:A

相关主题
文本预览
相关文档 最新文档