C语言试题六套

更新时间:2023-12-21 21:14:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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(\scanf(\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

10,20 ?

四、程序填空题,将下面程序补充完整(10个填空,每空2分,共20分): //利用函数形式,求x数组所有元素的平均值并输出。 #include \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(\}

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 \void main( ) { char str[20]; int m;

int length(char *p);

printf(\gets(str);

m=length(str) ;

printf(\}

int length(char *p) { int n=0;

while(*p!='\\0' ) { n++; p++; }

return n; } }

//输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。 #include \void main( )

{ int i,n=10,a[10]; float avg=0;

for(i=0;i<10;i++) scanf(\for(i=0;i<10;i++) { if( i%3==0 ) printf(\

printf(\}

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

printf(\}

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 \void main() {

int a,b,c,t;

scanf(\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(\}

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

float score;

printf(\ scanf(\

while(score<0||score>100) { printf(\ scanf(\ }

if(score>=90) printf(\

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

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

else if(score>=60&&score<70) printf(\ else printf(\}

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

int a[N],i,j;

printf(\ for(i=0;i

scanf(\ sort(a);

for(i=0;i

printf(\}

void sort(int a[]) {

int i,j,temp;

for(i=0;ia[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=fopen(″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(\;的输出结果是___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 \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 \int d=1; fun(int p)

{ static int d=5; d+=p; return (d); }

void main( ) { int a=3;

printf(\; } 15

//#include \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 \

float average(float (1)a[],int n ) { int i;

float sum=0;

for(i=0;i

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(\; avg=average(y,5);

printf(\; }

5.将字符数组中大写字符改为小写字符,将小写字符改为大写字符。 #include \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[]=\int i;

p1=a;p2=b;

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

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

执行结果是( ) string b is:I am a boy.

1、求1+2+…+100的和 main( ) {

int i, __①___; i=1; do

{ sum=sum+i; __②___;

}while(__③___); printf(\ }

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(\⑥___;} if(n==0) printf(\}

printf (\}

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

int a[11];

int __⑦___;

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

scanf(\⑧___); printf(\

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(\for(i=1;i<11;i++) printf(\ }

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

本文来源:https://www.bwwdw.com/article/ep85.html

Top