C语言程序设计-海滨学院期末考试试卷(2010-2011-第二学期)(A)_第1页
C语言程序设计-海滨学院期末考试试卷(2010-2011-第二学期)(A)_第2页
C语言程序设计-海滨学院期末考试试卷(2010-2011-第二学期)(A)_第3页
C语言程序设计-海滨学院期末考试试卷(2010-2011-第二学期)(A)_第4页
C语言程序设计-海滨学院期末考试试卷(2010-2011-第二学期)(A)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业北 京 交 通 大 学 海 滨 学 院 考 试 试 题 (A 卷)课程名称:C语言程序设计 20102011学年 第二学期 出题教师:计算机教学组 专业: 班级: 姓名: 学号:答题说明:本试卷共有六道大题,要求所有解答均写在答题卡上,否则无效。上交试卷时按照发试卷时候的顺序整理试卷,平铺展开上交。一、选择题(本题共30道题目,每题1分,共30分)以下叙述正确的是( )。 A)在C程序中,每行中只能写一条语句。B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中

2、允许存放整型数。C)在C程序中,无论是整数还是实数,都能被准确无误地表示 。D)在C程序中,%作为运算符时只能用于整数运算。以下说法错误的是( )。 A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式。 B)计算机只能处理由0和1的代码构成的二进制指令或数据。 C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件。 D)每一种高级语言都有它对应的编译程序。 以下不是构成合法标识符的成分是( )。A)字母 B)数字 C)标点符号 D)下划线C语言中运算对象必须是整型的运算符是( )。A)%= B)/ C)= D)=若变量已正确定义并赋值,以下符合C语言语

3、法的表达式是( )。A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b 设变量a是int型,f是float型,i是double型,则执行表达式10+a+i*f/a之后,变量a的数据类型为( )。A)int B)float C)double D)不确定不能进行+和- -运算的数据类型为( )。A)指针 B)整型 C)长整型 D)常量已知int a=4; 则执行a+=a-=a*a;语句后,a的值为( )。A)36 B)0 C)-24 D)-60若变量已正确说明为float型,要通过语句scanf(%f%f%f,&a,&b,&c); 如果使变量a的值为10.0,变

4、量b的值为22.0,变量c的值为33.0,则下列不正确的输入形式是 ( )。A)102233B)10.0,22.0,33.0 C)10.022.033.0D)102233 设有int x=14;则表达式(x+*1/3)的值是( )。A)4 B)5 C)14 D)15设a为整型变量,不能确定表达数学关系10a15的为C语言表达式是( )。A)10a10&a15 D)!(a=15) 为了避免嵌套的条件分支语句 if-else中的else总是与( )组成成对关系。A)缩排位置相同的 B)在其之前未配对的ifC)在其之前未配对的最近的if D)在同一行上的if有以下程序段,执行后输出结果是( )。in

5、t i=1,j=1,k=2;if(j+|k+)&i+) printf(%d,%d,%d,i,j,k);A)1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,3请阅读以下程序段,则( )。int a=0,b=0,c=0;if(a=b+c)printf(*n);else printf(n);A)有语法错不能通过编译 B)可以通过编译但不能通过连接C)输出* D)输出设变量已正确定义,则以下能正确计算f = n!的程序段是( )。A) f=0; for(i=1;i=2;i-) f*=i;C) f=1; for(i=n;i1;i+) D) f=1; for(i=n;i=2;i-) f*=i

6、;下面有关for循环的正确描述是( )。A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来以下能正确定义且赋初值的语句是( )。A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;下列字符数组长度为5的是( )。(A)chara=h,a,b,c,d; (B)charb=h,a,b,c,d,0; (C)charc10=h,a,b,c,d; (D)chard6=h,

7、a,b,c,0 有以下程序段,程序运行后的输出结果是( )。A)4 4 B)3 3 C)3 4 D)4 3 char p=a, b, c, q=abc;printf(%d %d, sizeof(p),sizeof(q);有以下程序段,执行后的输出结果是( )。A)7 5 3 B) 3 5 7 C)3 6 9 D)7 5 1 int i,t3=9,8,7,6,5,4,3,2,1; for(i=0;i3;i+) printf(“%d”,t2-ii); 已有定义 int k=2; int * ptr1,* ptr2; 且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )。A)k=*

8、ptr1 + *ptr2; B)ptr2=k; C)ptr1=ptr2; D)k=*ptr1*(*ptr2);下面程序段的运行结果是( )。char *s=abcde; s+=2; printf(%s,s);A)cde B)字符c C)字符c的地址 D)无确定的输出结果函数调用过程,如果函数funA调用了函数 funB,函数funB又调用了函数funB,则()。A)称为函数的直接递归调用 B)称为函数的间接递归调用C)称为函数的循环调用 D)C语言中不允许这样的递归调用若有int a10 , *p=a; 则p+5表示( )。A)元素a5的地址 B)元素a5的值 C)元素a6的地址 D)元素a6

9、的值以下叙述中正确的是 ()。A) 全局变量说明为static存储类,其作用域将被扩大B) 局部变量说明为static存储类,其生存期将得到延长C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同以下能正确定义二维数组的是()。(A)int a4; (B)int a4=22*3;(C)int a4=; (D)int a44=1,2,3,4;在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。A) 地址传递 B) 单向值传递C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定以下程序的输出结果是()。 #include

10、 #includemain() char st20= “hello0t”; printf(%d %d, strlen(st),sizeof(st); A) 9 9 B) 5 20 C) 13 20 D) 20 20C语言结构体类型变量在程序执行期间( )。A)所有成员一直驻留在内存中 B)只有一个成员驻留在内存中C)部分成员驻留在内存中 D)没有成员驻留在内存中以下程序的输出结果是( )。 struc STU char name10; int num;void f1(struct STU c) struct STU b=“LiSiGuo”,2043; c=b;main( ) struct ST

11、U a=“YangSan”,2041; f1(a); printf(“%s,%d”, , a.num );执行后的输出结果是A)YangSan,2041 B)YangSan,2043 C)LiSiGuo,2041 D)LiSiGuo,2043二、填空题(本题共10个空,每空1分,共10分)在内存中,存储字符x要占用1个字节,存储字符串X要占用 个字节。C语言中, 语句的作用是继续程序中的下一个循环。字符串存储时,末尾被系统自动加上 字符。若有定义int a33=1,2,3,4,5;则a21的值为 。在C语言中,形参的缺省存储类是 。C语言中,数组在内存中占一片 的区域,由 代表它的

12、首地址。若有定义语句 int b10 , *p=b ; 在程序中引用数据元素bi的四种形是: , , 和xi(假设i已正确说明并赋值)。 三、判断题(本题共13个题,每题1分,共13分。对的画对号,错的画叉号)在C程序中,else的个数不能多于if的个数。( )变量的指针就是变量的地址。( )假设int x=10/3,则x的取值为3.3。( )一个C程序可以有很多个函数。( )定义数组时,数组长度可以是变量。( )运行语句int a=0; while(+a) printf(“%d”,a); 可以输出变量a的值。( )指针变量不可以作为函数的参数。( )语句char ch =n;是正确的定义初始

13、化语句。( )运行语句static int a; printf(”%d”,a);无法输出结果,因为a没有赋值。()break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。( )数据类型的转换分为两种:一种属自动转换,另一种是强制转换。( )数组名可以作函数的参数,传递的是数组的第一个元素的内存地址。( ) 任何算法都必须有至少一个输入数据。( )四、写出程序的运行结果(本题共3道题目,每题3分,共9分)有以下程序段,运行后的输出结果是 。int k=5,n=0;while(k0) switch(k) default : break; case 1 : n+=k; case 2 :

14、case 3 : n+=k; k-; printf(%d,n);有以下程序,运行后的输出结果是 。#includeint fun(int n) if(n=1) return 1; else return (n * fun(n-1); int main( ) int x=6; x=fun(x); printf(%d,x); return 0; 有以下程序,运行后的输出结果是 。#includeint main( ) int x=0,1,2,3,4,5,6,7,8,9;int s=0,i,*p = &x2;for(i=1;i6;i+=2) s += *(p+i);printf(%d,s);retu

15、rn 0;五、程序填空。(本题共3道题目,每题4分,共12分)根据注释的内容,把代码补充完整。#includeint main( )int f1, f2; ;/输入数据,运行时输入10,3,变量f1得到10,f2得到3。f1 *= f2; ;/输出变量f1的值,要求数据宽度为6位,左对齐。return 0; 以下程序用以删除字符串里所有的空格,请填空。#include int main( ) char s100=Our teacher teach C language!;int i,j;for(i=j=0;si!=0;i+) if( ) sj=si;j+;sj= ;printf(%s,s);r

16、eturn 0; 下面程序的功能是对一个数组进行从小到大的排序,请填空。 #include #define N 10int main() int numN,i=0;void sort(int a,int n);for(i=0;iN;i+) scanf(%d,&numi); sort( num, N); printf(n排序之后:);for(i=0;iN;i+) printf(%5d,numi); return 0;/以下函数实现对数组进行从小到大排序。void sort(int a,int n)int i,j,t;for(i=1;in;i+)for(j=0; ;j+)if( ) t=aj;aj=aj+1;aj+1=t;六、编程题。(本题共3道题目,第1题8分,第2题8分,第3题10分,共26分)编程实现大小写字母的转换,要求如下:从键盘输入一个字符,要求使用getchar()函数读入字符。如果输入的是一个小写字母,转换为大写字母。如果输入的是一个大写字母,转换为小写字母。如果输入的是一个非字母字符,不变。输出转换过的字符,使用putchar()函数。编程实现如下要求:由键盘输入一个长度小于20的字符串保存到一个数组中,利用这

温馨提示

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

评论

0/150

提交评论