程序设计技术(C语言)理论+实践2_第1页
程序设计技术(C语言)理论+实践2_第2页
程序设计技术(C语言)理论+实践2_第3页
程序设计技术(C语言)理论+实践2_第4页
程序设计技术(C语言)理论+实践2_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、- 13 -计算机程序设计技术(C语言)理论题一、选择题(每小题1.5分,共60分)得 分阅 卷1、C语言的编译系统对宏命令的处理是( ) A)在程序运行时进行的 B)在程序连接时进行的 C)和C程序中的其它语句同时进行编译的 D)在对源程序中其它语句正式编译之前进行的2、以下说法正确的是( ) A)main函数必须放在C程序的开头B)C语言程序中要求每行只能写一条语句C)注释可以出现在C语言程序中的任何位置D)最小的C语言程序中可以没有main函数3、下列表达式中值为false(假)的是( ) A)13 & 57 B)!(510) C)11 & 0x01 D)!(47) | | (28)4、

2、如果x是一个整型变量,那么以下答案( )是赋值x = 1/3的结果 A)0.33 B)0.30 C)0 D)未定义的无用数据5、在C语言中,正确的int类型常数是( ) A)-2U B)0.59 C)3a D)0Xaf6、下列变量定义正确的是( ) A)int x 1;y; B)int x=y=5; C)int for=4 D)int printf=2,x y=2;7、设int x,*p;下列表达式中正确的是( ) A)5.0%2 B)x+1=5 C)&p D)&(x+1)8、对以下说明,数值尾的表达式是( ) Int a 10=1,2,3,4,5,6,7,8,9,10,*p=a; A)*p+

3、9 B)*(p+8) C)*p+=9 D)p+89、以下程序执行后的输出结果是( ) void main() int k=2,i=2,m; m =(k+=i=k); printf(%d,%dn”,m,i); A)8,6 B)8,3 C)6,4 D)7,410、x,y,z被定义为int,若从键盘给x,y,z输入数据,正确的输入语句是( ) A)INPUTx,y,z; B)scanf(“%d%d%d”,&x,&y,&z); C)scanf(“%d%d%d”,x,y,z); D)read(“%d%d%d”,&x,&y,&z);11、以下程序当输入3时,输出的结果是( ) # include void

4、 main() int x, y, z; scanf (“%d”,&x); if (x5) y =100; z =-5; printf (“%d %d%d”,x, y, z); A) 3, 无用数据, -5 B) 5, 无用数据, 3 C) 3, 无用数据, 无用数据 D) 无用数据, 无用数据, 无用数据12、do-while 结构繁荣循环体中的语句要执行的次数是( ) A)0 B)只有一次 C)至少一次 D)以上三项皆错13、在下面的代码段中语句x = 1会执行( )次 for(j =1;j =n;j+) for (k=1;k =n;k+) x = 1; A) n B) n(n+1) C)

5、 D)n+n14、以下程序段所做工作是( ) do scanf(“%d”,&numb); while (numb 10); A) 读取0,11范围之内的一个整数 B)读取-1,10范围之内的一个整数 C)读取1,10范围之内的一个整数 D)以上三项皆错15、在以下四个运算符中,优先级最低的是( ) A)* B)+ C)/ D)=16、如果n=2,以下输出的结果是( ) switch(n) case(1):printf(“You have chosen to add datan”); break; case(2):printf(“You have chosen to delete datan”)

6、; case(3):printf(“You have chosen to view datan”); break; case(4):printf(“You have chosen to print datan”); break; default:printf(“Invalid inputn”); break; A)You have chosen to add data B)You have chosen to delete data C)You have chosen to delete data D)You have chosen to delete data Invalid input Y

7、ou have chosen to view data17、假设char str10=“China0”;执行strlen(str)后的结果是( ) A)5 B)6 C)7 D)918、以下数组定义中不正确的是( ) A)int a23; B)int b3=0,1,2,3; C)int c100=0; D)int d3=1,2,1,2,3,1,2,3,419、运行以下程序的输出结果是( ) void main() int n5=0,i,k=2; for(i=0;jk;i+) ni = ni + 1; printf(“%dn”,nk); A)不确定 B)2 C)1 D)020、数组int x54可

8、以存储( )个整数 A)22 B)20 C)9 D)1221、对于定义为float p33的数组,以下用法错误的是( ) A)p00 B)p13 C)p11 D)p1222、以下程序的输出结果是( ) int a,b; void fun() a=100;b=200 ; void main() int a=5,B=7; fun(); printf(“%d%dn”,a,b); A)100200 B)57 C)200100 D)7523、在一个被调函数中,关于return语句使用错误的是( ) A)被调函数中可以没有return语句 B)被调函数中可以使用多个return语句 C)被调函数中,如果有

9、返回值,就一定要有return语句 D)被调函数中,一句return语句可以返回多个值给主调函数24、设有以下说明语句 struct stu int a; float b; stutype;则下面的叙述不正确的是( ) A)struct是结构体类型的关键字 B)struct stu是用户定义的结构体类型 C)stutype是用户定义的结构体类型 C)a和b都是结构体成员名25、( )可以是结构体的一部分 A)字符串常量 B)整数变量 C)整数常量 D)字符常量26、函数原型声明应该放置在( ) A)在main()函数之中 B)作为main()函数中的一个语句 C)恰好在函数本身的定义之前 D)

10、在其他所有函数之前(包括main()函数)27、在调用一个函数时,主调函数将通过( )的变量列表传递给被调函数 A)形式参数 B)实际参数 C)寄存器变量 D)局部变量28、全局变量的作用域限于( ) A)某个程序包括的所有文件 B)定义该变量的语句所在的函数 C)本程序文件 D)从定义该变量的位置开始到本程序结束29、能正确表示代数式的C语言表达式是( ) A)sqrt(a*a+b*b) B)sqrt(a*2+b*2) C)sqrt(a*a+b*b,2) D)sqrt(a*2+b*2,0.5)30、当n=-4时,以下代码段将会发生什么情况( ) int factorial(int n) if

11、 (n= =0) return 1; else return factorial(n-1)* n; A)递归函数返回0 B)递归函数进入无限循环 C)递归函数返回-4的阶乘 D)以上三项皆错31、递归调用中的函数状态将在( )中得到保持 A)堆栈 B)堆(Heap) C)树 D)以上皆错32、要声明一个浮点指针,正确的方法是( ) A)float x; B)float *x; C)float *x;= 3; D)以上三项皆错33、以下程序的输出结果是( ) void fun(int x,int y,int z) z = x*x+y*y; void main() int a=31; printf

12、(“%d”,a); A)0 B)29 C)31 D)无定值34、对于声明int a100和int j,表达式*(a + j)等价于引用( ) A)aj-1 B)aj+1 C)a D)aj35、若n、i、j和k都是int型变量,则执行下面语句后n的值为( ) n=(i=20,j=40,k=60); A)20 B)40 C)60 D)8036、在C语言中,对动态分配的内存块进行释放的函数是( ) A)malloc() B)free() C)new memory() D)dele()37、以下循环体的执行次数是( ) void main() int i,j; for(i=0,j=1;ij+1;i+=

13、2,j-) printf(“%dn”,i): A)2 B)3 C)0 D)138、有以下程序 #includestdio.h void main() int i,n=0; for(i=2;i5;i+) do if(i%3)continue; printf(“n=%dn”,n); 则程序执行后的输出结果是( ) A)n=4 B)n=2 C)n=3 D)n=539、以读写方式打开一个已有的文本文件filel,下面fopen函数正确的调用方式是( ) A)FILE *fp;fp=fopen(“filel”,“r”); B)FILE *fp;fp=fopen(“filel”,“r+”); C)FILE

14、 *fp;fp=fopen(“filel”,“rb”); D)FILE *fp;fp=fopen(“filel”,“rb+”);40、当int b=2;时,表达式(b1)的值是( ) A)0 B)2 C)4 D)8二、阅读与选择题(每空2分,共30分)得 分阅 卷 (一) C语言中的合法标识符由 41 、 42 、 43 组成,且必须以 42 、 43 开头。 A)任意字符 B)大写字母 C)任意字母 D)数字 E)小写字母 F)下横线 G)反斜杠 H)关键 (二) 下面程序的功能是输出以下形式的金字塔图案: * * * * void main() int i,j; for(i=1;i=4;i

15、+) for(j=1;j= 44 ;j+)printf ( 45 ); for(j=1;j= 46 ; j+)printf ( 47 ); A)i B)2*i-1 C)2*i+1 D)i+2 E)4-i F)“*” G)“” H)i (三) C语言源程序的结构单位为 48 , 48 必须先 49 后调用。每个C程序必须有一个 50 。调用函数时可以通过 51 向被调用的函数传递数据,被调用函数可通过 52 语句返回结果。C语言允许在函数内部 53 另一个函数,不允许在函数内部 54 另一个函数。函数直接或间接调用函数自己,称为 55 。A)子程序 B)递推调用 C)参数 D)定义 E)brea

16、k F)returnG)递归调用 H)函数 I)调试 J)调用 K)main函数 L)声明三、阅读与填空题(每空2分,共10分)得 分阅 卷 (一)结构化程序设计中的三种基本结构是顺序结构、 56 、 57 。(二)设n为int型变量,请写出描述“n是奇数”的表达式 58 。(三)在C语言中,一个函数由两部分组成,它们分别是函数首部和 59 。(四)在循环体中可用 60 语句实现跳出本循环体,提前结束循环。计算机程序设计技术(C语言)理论参考答案一、(每小题1.5分,共60分)12345678910DCBCDBCBCB11121314151617181920CCCCDDADDB21222324

17、252627282930BBDCBDBDAB31323334353637383940ABCDCBDABD二、(每空2分,共30分)4142*43*44454647484950DCFEGBFHDK5152535455CFJDG注:有*答案可以互换三、(每空2分,共10分)56*57*585960分支结构循环结构n%2=1函数体break;注:有*答案可以互换计算机程序设计技术(C 语言)实践题请根据题目要求写出完整的程序并编译通过。注意以下几点:1 在考试结束前考生必须在考场服务器指定的目录中自行建立文件夹,其名字为考生准考证号的最后5 位。并将考生答题所生成的所有源程序文件拷贝到文件夹中。即使

18、考生的程序无法编译通过,也应保存源程序文件,以得到基本分数。2 根据运行平台的不同,考生上传的程序文件可以是下列中的一种:( 1 )以考生准考证号的最后5 位命名的文件夹中应保存对应试题的五个源程序文件和相应的五个exe 文件。五个文件名规定为准考证最后5 位1 . c 至准考证最后5 位5 。和准考证最后5 位1 . exe 至准考证最后5 位5 . exe 。( 2 )以考生准考证号的最后5 位命名的文件夹中应创建对应试题的五个工程顺目文件夹,工程顺目文件夹名分别为准考证最后5 位1 至准考证最后5 位5 ,将对应试题的所有运行文件分别保存到五个工程顺目文件夹中。3 写明程序的运行平台(如

19、VC+、Turbo C 、Borland C 等)。4 要求的算法流程图画在答卷上,源程序抄录在答卷上。5 必须严格按照题目要求完成程序,自己添加的成份不加分,如果影响了程序清晰性还要扣分。6 尽量使程序在编译时不出现warning 提示信息,否则将根据warning 提示的数量适当扣分。7 应尽量简化程序代码,并使程序尽量清晰易读。程序繁杂、结构混乱将被扣分。8 程序中应适当插入注释文字,但不应过于繁杂。合理、清晰的注释将适当加分。请你选择所用的运行平台,打“”VC+TurboBorland C其他:(请注明)试题一、以下程序的功能是将字符串str 的字符顺序颠倒过来。(12 分)inclu

20、de“string.h”#include“stdio.h”void main() int i,j; char ch,str=“12345678”; for(i=0,j= 1 ;i=0;-i) printf(“%c”,bc I ); 试题三、以下程序的功能是从键盘上输入若干个学生的成绩,从中求出最高成绩和最低成绩并输出,当输入负数时结束输入。(12分) # include “stdio.h” void main() float x,max,min; scanf(“%f”,&x); max=min= 6 ; while( 7 ) if(xmax) max=x; else if( 8 ) min=x

21、; scanf(“%f”,&x); printf(“nmax=%6.1fnmin=%6.1fn”,max,min); 试题四、(28分)编写一个程序,其功能为:将M行N列的二维组数w中的数值,按列的顺序依次存放到一维数组a中。例如:二维组数w中的数据为:33 33 33 3344 44 44 44 55 55 55 55 则一维数组a中的内容应是:33 44 55 33 44 55 33 44 55。试题五、(40分)编写一个程序,其功能为:(1) 输入一个长度不超过80个字符的英文句子,用回车符结束;(2) 统计句子中元音字母A、E、I、O、U(不区分大小写)的个数,并输出统计结果。要求:1

22、、画出程序的算法流程图(10分) 2、编写和调试该程序(30分)例如:输入:Can I help you?(回车)输出:字母A的个数=1 字母E的个数=1 字母I的个数=1 字母O的个数=1 字母U的个数=1计算机程序设计技术(C语言)实践参考答案一、二、三(每小题4分,共 32 分)12345678strlen(str) -1j- -strj=chn%basen/basexx=0.0x min四、(共 28 分)参考代码:#include void main() int w1010= 33, 33, 33, 33 , 44, 44, 44, 44 , 55, 55, 55, 55 ,i,j;

23、 int a100=0, n=0; printf(二维数据w :n); /* 输出二维数据w */ for (i=0; i3; i+) for (j=0; j4; j+) printf(%3d, wij); printf(n); /* 按列的顺序将二维数组w依次存放到一维数组a中 */ for (i=0; i4; i+) for(j=0; j3; j+) *(a+n)=*(*(w+j)+i); /* an=wji; */ n+; printf(一维数组a :n); /* 输出一维数据a */ for (i=0; in; i+) printf(%3d, ai); printf(nn);五、(共 40 分)参考程序:#include void m

温馨提示

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

评论

0/150

提交评论