C语言程序设计试题A_第1页
C语言程序设计试题A_第2页
C语言程序设计试题A_第3页
C语言程序设计试题A_第4页
C语言程序设计试题A_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、四川职业技术学院2005 2006学年第1学期期末考试(A)题号-一一二二二总 分总分人分数考试时间:120分钟命题人:陈科C语言程序设计(供04电气、04机电班使用)满分:100分顺序结构、选择结构、转移结构 分支结构、等价结构、循环结构 多分支结构、赋值结构、等价结构 顺序结构、选择结构、循环结构2、以下叙述中正确的是A)B)C)D)B)整型、实型、字符型D)字符型、实型、逻辑型以下符合C语言语法的表达式是B ) a=b=c+2 C ) int 18.5%3 D )B)+i;D)a=i nt ( i);10.0,22.0,33.0< 回车1022回车33回车B)a=1,b=1C)a=

2、1,b=0B)2,2,1C)2,2,2一、单项选择题,答案不写入答题栏的一律不得分!(每题 1.5分, 共52.5分)1、结构化程序设计的3种结构是A)B)C)D)C语言比其他语言咼级C语言可以不用编译就能被计算机识别执行C语言以接近英语国家的自然语言和数学语言作为语言的表达 形式C语言出现的最晚,具有其他语言的一切优点3、 C语言中最简单的数据类型包括 。A)整型、实型、逻辑型C)整型、字符型、逻辑型4、若变量已正确定义并赋值,A) a:=b+1 a=a+7=c+b5、 若变量a,i已正确定义,且i已正确赋值,合法的语句 是A) a= =1 a=a+=5;6、已知:int t=0;while

3、 (t=1 ) .则以下叙述正确的是。A)循环控制表达式的值为0 B )循环控制表达式的值为1 C)循环控制表达式不合法D )以上说法都不对7、若变量已正确说明为float 型,要通过语句seanf (" %f%f%P ,&a,&b,&c ); 给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式 是。A) 10<回 车 >22<回 车 >33<回 车 >C 10.0< 回车>22.033.0< 回车 >8有如下程序:main ()int x=1,a=0,b=0;switch (x)

4、case 0: b+;case 1: a+;case 2: a+;b+;printf ("a=%d,b=%dn",a,b ) ;该程序的输出结果是A) a=2,b=1a=2,b=29、有以下程序main ()int i=1,j=1,k=2;if (j+|k+ ) &&i+)printf ("%d,%d,%dn",i,j,k);执行后输出结果是.A) 1,1,22,2,310、有如下程序main ()float x=2.0,y;if (x<0.0) y=0.0;else if(x<10.0) y=1.0/x;else y=1.0

5、;printf ("%fn",y ) ;0该程序的输出结果是A) 0.000000 0.50000011、有如下程序: main () int n=9;while (n>6)B) 0.250000D) 1.000000n-; printf ("%d", n) ;该程序的输出结果是 。A) 987B) 876C) 876512、在下列选项中,没有构成死循环的是 A) int i=100; while (1) i=i%100+1;(i>100) break;if B)C)for (;);int k=10000; dok+;while D) int

6、 s=36 ; while (s) - -s;13、设 int x=1,y=1;A) 014、有以下程序(k>10000);表达式(!x|y-B) 1)的值是C) 2D) 98760D) -116、若有以下调用语句,则不正确的fun main ()int a 50fun (n, &a,n;9);A) void fun C) void fun解析把数组a中9号元素的地址传递给(int m, int x (intp, int *s)函数的首部是41)做函数的形参。A选项用不定长度的数组 作形参;C用指针变量*s作形参;显然D中形参变量a只是普 接收来自于实参9号元素的地址。B) vo

7、id fun (int s, int hD) void fun (int n, int afun的函数参数,本题的考点是用什么来 x作形参;B选项用长度小于50的数组h 通的整形变量,不能17、fseek函数的正确调用形式是 。A) fseek (文件指针,起始点,位移量)B) fseek (文件指针,位移量,起始点) C) fseek (位移量,起始点,文件指针)D) fseek (起始点,位移量,文件指针)18、若fp是指向某文件的指针,且已读到文件末尾,则函数 是。A) EOFB) -1feof (fp )的返回值D) NULLfloat fun(int x,i nt yreturn (

8、x+y ) ; main () int a=2,b=5,c=8; printf("%3.0f n",fu n 程序运行后的输出结果是. A)编译出错B) 9(int ) fun (a+c,b) ,a-c ); oC) 21 D) 9.015、若已定义的函数有返回值,贝U以下关于该函数调用的叙述中错误的 是.A)B)C)D)0函数调用可以作为独立的语句存在 函数调用可以作为一个函数的实参 函数调用可以出现在表达式中 函数调用可以作为一个函数的形参19、若有说明语句:char c=' 72'则变量c1个字符B)包含2个字符D)说明不合法,c的值不确定A)包含 字

9、符C)包含3个20、若有说明A) a 02*1a 04int a 3 4;则a数组元素的非法引用是 B) a 13C) a 4-2 021、设有以下说明语句struct stuint a;float b; stut ype;则下面的叙述不正确的是A) struct是结构体类型的关键字 户定义的结构体类型C) stutype是用户定义的结构体类型名 结构体成员名struct stu 是用D) a 和 b 都是22、在C语言中,引用数组元素时,其数组下标的数据类型允许 是。A)整型常量B)整型表达式C)整型常量或整型表达式 的表达式D)任何类型27、下列程序执行后的输出结果是void func (

10、int *a,i nt b b 0 =*a+6; main () int a,b5;a=0; b 0 =3; func (&a,b) ; printf A) 68)("%cln",b 0);23、若运行时给变量x输入12,则以下程序的运行结果是 main ()int x,y;seanf ("%d",&x); y=x>12?x+10:x-12;printf("%d n",y );A) 0B) 22C) 1224、以下说法正确的是。C语言程序总是从第一个的函数开始执行在C语言程序中,要调用函数必须在 main ()函

11、数中定义C语言程序总是从main ()函数开始执行C语言程序中的main ()函数必须放在程序的开始部分A)B)C)D)D) 10解析func (&a,b)中两个参数分别把整形变量a的地址传递给指针变量*a、把数 组b (即数组名作实参)首元素的地址传递给形参数组 b 。因此在func ()函 数中,b 0二*a+6=0+6=6。28、若有下面的程序段:char s ="ehi na"char *p; p=s;则下列叙述正确的是。A) s和p完全相同B)数组s中的内容和指针变量P中的内容相等C) s数组长度和P所指向的字符串长度相等D) *p与s 0相等29、有以下

12、程序void sort (int aint i,j,t;for (i=0;i<n-1;i+for (j=i+1;jvn;j+ ,int n )C) 0xE8D) 0x1725、表达式0x139x17的值是_A) 0x04B) 0x13 26、有以下程序#define F (X,Y)( X) * (Y)main ()int a=3, b=4;printf("%d n", F (a+, b+ );程序运行后的输出结果是 A) 12B) 1516D) 20if (a i va j ) t=a i ;a i =a j ;a j =t;main ()int aa 10 =1,2

13、,3,4,5,6,7,8,9,10,i;sort (&aa 3 ,5 );for (i=0;iv10;i+) printf ("%d,",aa i );printf (" n");程序运行后的输出结果是 。A) 1,2,3,4,5,6,7,8,9,10,B) 10,9,8,7,6,5,4,3,2,1,C) 1,2,3,8,7,6,5,4,9,10,D) 1,2,10,9,8,7,6,5,4,3,解析sort (&aa3 ,5 )的作用是把数组aa的第3号元素及其后续4个元素( 共5个元素)由大到小排列,其他元素原样输出。30、以下程序的运

14、行结果是_#i nclude "stdio.h" main () struct dateint year,m on th,day;today; printf("%d n",sizeofA) 61031、若有语句 int *point, a=4; 是。A) a,point,*&aB)&a,&*poin t, point(struct date );8D) 12和point=&a;下面均代表地址的一组选项&*a,&a,*pointC) *&point,*point,&aA) 3648B) 64C

15、)D)以上都不对34、下列关于C语言数据文件的叙述中正确的是A)B)C)D)文件由ASCII码字符序列组成,C语言只能读写文本文件 文件由二进制数据序列组成,C语言只能读写二进制文件 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件32、已定义以下函数fun (char *p2, char *p1while ( *p2=*p1 ) !=' 0' ) p 1+;p2+; 函数的功能是。A)将p1所指字符串复制到p2所指内存空间 赋给指针p2C)对p1和p2两个指针所指字符串进行比较 字符串中是否有0&

16、#39;B )将p1所指字符串的地址D)检查p1和p2两个指针所指33、若执行下述程序时,若从键盘输入6和8时,main ()i nt a,b,s;scanf ("%d%d",&a,&b);s=aif (a<b)s=b;s*=s;printf ("%d",s );结果为35、有以下程序void ss (char *s,char t )while (*s)if (*s= =t ) *s=t - 'a'+ 'A's+;main ()char str1 100 ="abcddfefdbd"

17、;,c='d'ss (str1,c ) ; printf("%sn",str1 );程序运行后的输出结果是 A) ABCDDEFEDBD B) abcDDfefDbDabcAAfefAbAD) Abcddfefdbd解析把字符串中的小写字符 d'转换为大写字符 D'。字符指针*s是指向该 串的首字符(即字符 a'),随着S+不断向后续字符移动。t - 'a'+ 'A' 是英 文字符小写转大写的公式,这里不再赘述。二、填空题,答案不写入答题栏的一律不得分!(每空 2分,共30分) 36、以下程序段的输出结

18、果是 28。main ()int a=2,b = 3,c=4;a*=16+(b+) -( +C);printf ("%d",a );373&若变量n中的值为24,则print ()函数共输出_5_行,最后一行有 £个 数。void print (int n ,i nt aa )int i;for(i=1; ivn+1; i+printf("%6d", aaif (!(i%5) printfprintf(" n");)i );(" n");39、调用C语标准库函数时要求用in elude 命令。40

19、、stract函数的作用是连接两个字符数组中的字符串。main () int i, x 20 , max,index, n=10;randomize ();for (i=0;i<n;i+)x i : =rand () %50; printf ("%4d",x i );printf(" n");fun (x,n,&max,&index );printf("Max=%5d,l ndex=%4 n", max, i ndex );/* */)k=i+j;24641、C语言程序的注释可以出现在程序中的任何地方,一个注释以

20、 为开始和结束。42、设二进制数A是00101101,若想通过异或运算 AP使A的高4位取反,低4 位不变,则二进制数 B应是1111 0000。43、若已知a=10, b=20,则表达式!avb的值为44、设i,j,k均为int型变量,则执行完下面的for语句后,k的值 为 10。for (i=0, j=10; i<=j; i+, j-4546、下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大 的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的 下标。randomize

21、 ()是初始化随机数生成器函数,rand ()返回一个随机数函数。 请填空。#i ncludevstdlib.h>#i ncludevstdio.h>void fun (int a ,int n, int *max, int *d int i;*max=a 0;*d=0;for (i=0; i<n ;i+)if (*max< ai) *max=a i ;*d=i;47、以下程序的输出结果是 _void fun () static int a=0;a+=2; printf ("%d",a );main () int cc;for (cc=1;cc<

22、;4;cc+ ) fun ();printf (" n");解析第一次调用fun (),输出a为2;第二次调用fun (),输出a为4 (局部 静态变量,不重新赋初值);则第三次调用输出为6。48、以下程序的输出结果是7。#define MAX (x,y )(x) > (y) ? (x) : (y) main () int a=5,b=2,c=3,d=3,t; t=MAX( a+b,c+d) *10; printf ("%dn",t );49、下列y的值是8。int y; y=sizeof (2.25*4 );50、mystrlen函数的功能是计算

23、str所指字符串的长度,并作为函数值返回。请填 空。int mystrle n(char *str ) int i;for (i=0; *(sM+i )或者写成 stri !=0,;i+return (i );三、程序设计题。要求程序结构清晰,没有逻辑错误,书写工整,果。请写在背面并标明题号(第 51题7.5分、第52题10分, 步骤评分)51、输入一个3X3的整数矩阵,求其对角线元素之差。#in clude <stdio.h>void mai n()int a33,mi nus;int i,j;prin tf("e nter data:n");for (i=0

24、;i<3;i+)for (j=0;j<3;j+)sca nf("%d",&aij);min us=a00;for (i=1;i<3;i+)mi nu s=mi nu s-aii; prin tf("m inu s=%6dn",m inu s); 52、有10个学生,每个学生的数据包括学号(stu_num,6个字符,如s00101)、 姓名(name,8个字符) 实型,初始时不赋值,) 门课程的平均分,存回#in clude <stdio.h>#defi ne N 10struct stude ntchar stu_ nu m6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论