一、单项选择题(每题1分,共20分)
(1)()是构成C语言程序的基本单位。
A)子例程B)过程C)子程序D)函数
(2)下面标识符中正确的是()。
A) d&ef B) 6a C) z4x5c D) a3/b4
(3)C语言规定,函数返回值的类型是由()。
A) return语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定
C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型所决定
(4)以下选项中非法的表达式是()。
c语言程序分析题及答案A) 0<=x<100 B) x+l=x+l C) (char)(65+3) D) i=j=0
(5)表达式3.6-5/2+1.2+5%2 的值是()。
A) 3.8 B) 4.8 C) 3.3 D) 4.3
(6)设int a=12,则执行完语句a+=a-=a*a后,a的值是()。
A) 552 B) -264 C) 144 D) 264
(7)对if语句中表达式的类型,下面正确的描述是()。
A)必须是关系表达式B)必须是关系表达式或逻辑表达式
C)必须是关系表达式或算术表达式D)可以是任意表达式
⑻设有定义:intnl=0,n2,*p=&n2,*q=&nl;,以下赋值语句中与n2=nl;语句等价的是.
A) *p=*q; B) p=q; C) *p=&nl; D) p=*q;
(9)有以下程序
#include <stdio.h>
void main()
( char cl,c2;
cl='A'+'8'*4';
c2='A'+'8'-'5‘;
printf("%c,%d\n”,cl,c2); }已知字母A的ASCII码为65,程序运行后的输出结果是()。
A) E,D B) D,69 C) E,68 D)输出无定值
(10)下列叙述中正确的是()。
A) break语句只能用于switch语句B)在switch语句中必须使用default
C) break语句必须与switch语句中的case配对使用D)在switch语句中,不一定使用break语句
(11)设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是()。
A) 'a'+ 'b' B) a<=b C) a || b+c && b-c D) !((a<b) &&!c || 1)
(12)若用数组名作为函数调用时的实参,则实际传给形参的是()。
A)数组的第一个元素值B)数组的首地址C)数组的全部元素D)数组中元素的个数
(13)设有如下定义,则正确的叙述为()。
char x[]=( "abcdefg" };
char y[]={ 'a' , b ,'c' ,'d' ,'e' , 'f ,'g');
A)数组x和数组y等价B)数组x和数组y的长度相同
C)数组x的长度大于数组y的长度D)数组x的长度小于数组y的长度
(14)若有以下定义int a=100,*p=&a ;则说法错误的是()。
A)声明变量p,其中*表示p是一"指针变量B)变量p的值为100
C)变量p只可以指向一个整形变量D)变量p经初始化,获得变量a的地址
试卷类型:(A)卷考核方式:(闭)卷第1页共7页
试题要求:1.试题后标注本题得分;2.试卷应附有评卷用标准答案,并有每题每步得分标准;3.试卷必须提前一周送考试中心;4 . 考试前到指定地点领取试卷;5.考生不得拆散试卷,否则试卷无效。
(15)以下叙述中正确的是()。
A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大
C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同
(16)以下程序执行后sum的值是()。
main()
( int i,sum;
for(i=l;i<6;i++) sum+=i;
printf(H%d\n n,sum); }
A) 15 B) 14 C)不确定D) 0
(17)以下叙述中不正确的是()。
A) C语言中的文本文件以ASCII码形式存储数据B) C语言中对二进制位的访问速度比文本文件快
C) C语言中,随机读写方式不使用于文本文件D) C语言中,顺序读写方式不使用于二进制文件
(18)有如下函数调用语句
func(rec 1 ,rec2+rec3,(rec4,rec5));
该函数调用语句中,含有的实参个数是()。
A) 3 B) 4 C) 5 D)有语法错
(19)设有说明double (*pl) [N];其中标识符pl是()。
A) N个指向double型变量的指针。B)指向N个double型变量的函数指针。
C)一个指向由N个double型元素组成的一维数组的指针。D)具有N个指针元素的一维指针数组,每个元素都只能
指向double型量。
(20)设有以下说明语句,则下面的叙述中不正确的是()。
struct ex(int x; float y; char z;} example;
A) struct结构体类型的关键字B) example是结构体类型C) x,y,z都是结构体成员名D) struct ex是结构体类型
",填空题(每空2分,共40分)
(1)结构化设计中的三种基本结构是_____________________________________
(2)设x为int型变量,请写出一个关系表达式用以判断x同时为4和9的倍数时,关系表
达式的值为真。
(3)系统默认的C语言源程序文件的扩展名是_______经过编译后生成的目标文件的扩展名是__________经过连接后生
成的可执行文件的扩展名是。
(4)表达式7+8>2 && 25 %5的结果是______________。
(5)写出下列程序段的执行结果
int a, b, c;
a=b=c=5;
a=++b+(c—);
变量a,b,c的值为o
(6)如定义语句为char a[ ]= "computers",b[ ]= "111";,语句printf("%s",strcat(a,b));的输出结果为。
⑺C语言中根据数据的组织形式,把文件分为和两种。
(8)以下程序运行后的输出结果是_________。
main()
( int a=4, b=3, c=8;
if(c=a+b) printf(n yes\n n);
else printf(”no\n”);
}
(9)函数中的形参和调用时的实参都是数组名时,传递方式为都是变量时,传递方式为o
(10)按照变量在函数中作用域不同,可以将变量分为和O
(11)以下程序运行后的输出结果是________。
#define S(x) 4*x*x+l
main()
( inti=6,j=8;
printf(”%d\n”,S(i+j));
)
(12)组成数组元素的特点是__________________;组成结构体元素的特点是__________o
三,判断题。正确的写T,错误的写F (每题1分,共8分)
(1)通过return语句,函数可以带回一个或一"以上的返回值。()
⑵单目、三目和赋值运算符的结合性为从左到右。()
⑶从循环体中退出只能使用goto语句。()
(4)选择结构(if语句)和循环结构都可以使用嵌套形式。0
(5)只有一个分号";"的语句称为空语句,空语句不合法,编译时会报错。()
(6)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参。()
(7)宏定义可以嵌套定义,即在宏定义中的字符串可以引用另一个宏定义的标识符。()
⑻逻辑运算符&& ,11,!的运算顺序是!优先于&&优先于II o()
四,程序设计题(每题8分,共32分)
(1)编程计算「100之间的奇数和与偶数和。
(2)在a数组中查与x值相同的元素所在位置。
(3)从键盘上输入10个评委的分数,去掉一个最高分,去掉一个最低分,求出其余8个人的平均分,输出平均分,最
高分,最低分。
(4)二选一。
(a)输入一行字符,分别统计求出其中英文字母、空格、数字和其他字符的个数并输出。
(b)编程实现将文本文件cfilel.dat中的内容复制到文本文件cfile2.dat中去。
《C语言程序设计》试卷答案
一、单项选择题
1-5 DCDBA 6-10 BBACD 11-15 DBCBA 16-20 CDACB 填空题
1,顺序结构分支结构循环结构
2,(x%4==0)&&(x%9==0)
3,.c .obj .exe
4,0
5,11,6,4
6,computers 111
7,文本文件二进制文件
8,yes
9,址传递值传递
10,全局变量局部变量
11,81
12,一组数据类型相同的元素构成一组数据类型不同的元素构成三,判断题
1-4 FFFT 5-8 FTTT
四,程序设计题
1.#include <stdio.h>
Int main()
(
int sum 1=0, sum2=0, a, b ;-----------2 分
for (a=l ; a<=100 ; a++) (if (a%2==0) suml+=a ;
else sum2+=a ; }--------6 分
printf ( "%d, %d" , suml, sum2);
return 0;
}-----------8分
2,#include <stdio.h>
void main()
{ int a[10],i,x;------------2 分
printf( "input 10 integers :” );
for(i=0;i<10;i++)
scanf( "%d" ,&a[i]);---------3 分
printf( "input the number you want to find x :");
scanf( "%d" , &x );------------5 分
for(i=0;i<10;i++)
if( x=a[i] ) break;
if( i<10 )
printf( “the pos of x is : %d\n" ,i);
else printf( u can not find x ! \n" );-----------8 分
}
3 #include <stdio.h>
intmain ()
( float a[10], b, max, min, sum=0, aver ;-----------------------1 分
for (b=0 ; b<10 ; b++)
scanf ( "%f‘,&a[b]);
max=min=a[0] ;--------3 分
for (b=l ; b<10 ; b++) ( if (a[b]>max) max=a[b]; if (a[b]<min) min=a[b];
sum+=a[b] ;--------6 分
)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。