版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北 京 交 通 大 学2008 2009 学年第 二 学期期末考试试题课程名称: C语言程序设计 出题教师: _课程组_ 专业:_ 班级:_ 姓名:_ 学号:_ 题号一二三四五总分得分阅卷人-答题说明:要求所有解答均写在答题卡上,否则无效。一、 选择题(每题1分,共20分)1设整型变量a为7,使b不为3的表达式是( )。Ab=a/2 Bb=9-(- -a)Cb=a%2Db=a>3?3:12设int x=1,y=1;表达式(!x+ | y-)的值是( )。A0B1C2D-13设变量定义为 int a3=1,4,7,*p=&a2, 则*
2、p的值是( )。A&a2 B7 C4 D1 4C语言中以追加方式打开一个文件应选择( )参数。A“r”B”w” C “rb” D“a” 5从循环体内某一层跳出,继续执行循环外的语句是:( )。Abreak语句Breturn语句Ccontinue语句 D空语句6若变量c为char类型,能正确判断出c为数字的表达式是( )。A0<=c<=9 B(c>=0) | (c<=9) C(0<=c) and (9>=c) D(c>=0) && (c<=9)7选出下列标识符中不是合法的标识符的是( )。Ahot_d
3、oBcat1 C_priD2ab8以下说法中正确的是( )。AC语言程序总是从第一个的函数开始执行 B在C语言程序中,要调用的函数必须在main()函数中定义 CC语言程序总是从main()函数开始执行 DC语言程序中的main()函数必须放在程序的开始部分9若有int a10 , *p ; p=a ;,则( )是对数组元素的正确的引用。A*&a10Ba11C*(p+11)D*p10在函数中默认存储类型说明符的变量应该是( )存储类型。A内部静态 B外部 C自动 D寄存器11执行下面的程序后,a的值是( )。#include <std
4、io.h>#define SQR(X) X*Xvoid main( ) int a=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%dn",a); A1B 10 C9 D012不能把字符串:Hello!赋给数组b的语句是( )。Achar b10= H, e, l, l, o, !;Bchar b10; b=“Hello!”;Cchar b10; strcpy(b,“Hello!”); Dchar b10
5、=“Hello!”;13语句for(a=0,b=0;b!=100&&a<5;a+) scanf(“%d”,&b); scanf最多可执行次数为:( )。A4B6C5 D114下列关于指针定义的描述,( )是错误的。A在定义指针时,标识符前的“*”号表示后面的指针变量所指向的内容。 B指针变量的类型与它所指向的变量类型一致。 C指针变量的命名规则与标识符相同。 D指针是一种变量,该变量用来存放某个变量的地址值的。15设整型变量n的值为2,执行语句“n+=n- =n*n ;”后,n的值是( )。 A-4B4 C0 D216定义如下变量和数组: int i,
6、x33=1,2,3,4,5,6,7,8,9;则下面语句for(i=0;i<3;i+) printf("%d ",xi2-i); 的输出结果是( )。A1 5 9B1 4 7C3 5 7D3 6 917若已建立下面的链表结构,指针p,q分别指向图中所示结点,则不能将q所指的结点插入到链表末尾的一组语句是( )。data next nextabNULLpcq A q->next=NULL p=p->next p->next=q B p=p->next q
7、->next=p p->next=q Cp=p->next q->next=p->next p->next=q D p=(*p).next (*q).next=(*p).next (*p).next=q 18执行语句“x=(a=3,b=a- -)”后,x,a,b的值依次为( )。A3, 3, 2B3,2,2C3,2,3D2,3,219函数调用strcat(strcpy(str1,str2),str3)的功能是( )。A将
8、字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后B将字符串str1复制到字符串str2中后再连接到字符串str3之后C将字符串str1复制到字符串str2中后再复制到字符串str3之后D将字符串str2连接到字符串str1中后再将字符串str1复制到字符串str3中20下面的叙述不正确的是( )。 A递归调用使用选择结构,递推调用使用循环结构 B递归调用使用循环结构,递推调用使用选择结构 C递归调用使用选择结构,递推调用使用顺序结构 D递归调用使用顺序结构,递推调用使用选择结构二、 填空题(每题1分,共15分)1定义fp为文件型指针变量的定义方法为_。2若fp已
9、正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为"读"而打开此文件:fp=fopen_;。3. 为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与_组成配对关系。4在C程序中有如下语句:char *func(int x,int y); 它是对函数func的_。5设有如下定义: int x=10,y=3,z; 则语句printf("%dn",z=(x%y,x/y); 的输出结果是_。6若a是int型变量,则计算表达式a=25/3%3后a的值为_ 。7四个运算符 < 、 %
10、0;、 +、 = 按照优先级从高到低排列顺序为_ 。8数组 int a34;共定义了_ 个数组元素。9执行以下for(int i=1;i+<=5;);语句后,变量i的值为_ 。10链表是表示具有线性关系的一组数据元素的动态结构。链表的每个节点的结构主要包括两部分:值域和_ 。11设char ch=A;表达式!(ch>=A&&ch<=Z)?ch:(ch+32)的值是_。12两个指针变量的值相等时,表明两个指针变量是指向同一_或者都为空。13若有以下定义和语句: int a4=1,3,5,7,*p;p=&a2;则*-p的
11、值是_。14若程序中用到“strlen()”函数,则应在程序开头写上包含命令_。15函数中的形参和调用时的实参都是数组名时,传递的是_,都是变量时,传递方式为值传递。三、 阅读程序,写出程序运行的结果(每题4分,共24分)1执行下面的程序,输出结果是_。#include<stdio.h> void main()int n;for(n=1;n<=4;n+)if(n%2) printf(“* ”); else continue;printf(”# ” );printf(“$n”);2执行下面的程序,输出结果是_。 #include <stdio.h>void main
12、(void) char a="ABCDEFGHM",b="AbCDefGhM"char *p1,*p2; int k; p1=a; p2=b; for(k=0;k<=7;k+)if (*(p1+k)=*(p2+k) printf("%c",*(p1+k); printf("n"); 3执行下面的程序,输出结果是_。#include<stdio.h>void test()int a = 10;static int b =1; printf(“a=%d,b=%dn”,a-,b-);void main(
13、)int k;for(k = 1; k +<= 3;) test();printf(“%dn”,k);4执行下面的程序,输出结果是_。#include<stdio.h>void main()int a55,i,j;for(i=1;i<5;i+)for(j=1;j<5;j+) aij=(i/j)*(j/i); for(i=1;i<5;i+)for(j=1;j<5;j+) printf("%3d",aij); printf("n");5执行下面的程序,输出结果是_。#include <stdio.h&
14、gt;struct stu int num; char name10; int age;void fun(struct stu *p) printf("%d %sn",p->num,(*p).name); void main(void) struct stu students3=801,"Zhang",20,802,"Wang",19, 803,"Zhao",18 ; fun(students+2); 6执行下面的程序,输出结果是_。 #include <stdio.h> void main(vo
15、id) int a = 1, i;for (i=1; i<5; i+)switch (i) case 0: case 3: a += 2; case 1: case 2: a += 3; default: a += 5; printf("%dn", a); 四、 程序填空(每空2分,共16分)1华氏和摄氏温度的转化公式为C=5/9×(F-32),C表示摄氏温度,F表示华氏温度。要求:华氏0o-300o,每隔20o输出一个华氏对应的摄氏温度#include<stdio.h>void main()int upper,step;float fahr=0
16、,celsius;upper=300;step=20;while( ) ;printf("%f %fn",fahr,celsius); ;2函数fun的功能是:使字符串str按逆序存放。void fun (char str)char m; int i, j;for (i=0, j= ; i<j ; i+, j-) m = stri;stri = ;strj-1 = m; printf("%sn",str);3下面程序模拟了色子的6000次投掷,用函数产生随机数face,并统计1-6每一面出现的机会放到数组frequency中。#inclu
17、de<stdio.h>#include <time.h>#include<stdlib.h>void main() int face, roll, frequency7=0; ;for (roll=1;roll<=6000;roll+)face= ;+ ;printf("%s%sn","Face ","Frequency");for(face=1;face<=6;face+)printf("%d %dn",face,frequencyface);五、 编写程序(25分)1编写程序,求1+12+123+1234+12345(请用循环)2编写程序,假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是将字符串尾部的*号全部删除,前面和中间的*号不删除。 例如,字符串中的内容为”*A*BC*DEF*Z*”,删除后,字符串中的内容应当是”*A*BC*DEF*Z”。在编写函数时,不得使用C语言提供的字符串函数。3. 将设整型数组a共20个元素,将下标值为偶数的元素从小到大排列,其它元素不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中语文《项脊轩志》课件+统编版高二语文选择性必修下册
- 锁骨骨折的早期活动与康复指导
- 审计业务风险管理制度
- 审计现场撤点报告制度
- 县卫建局审计制度
- 亚克力财务板规章制度
- 安全与法制教育培训制度
- 华为软件绩效考核制度
- 历史人物曾发明过绩效考核制度
- 审计项目服务制度
- 建筑工程项目管理全过程指导手册
- 骨质疏松治疗仪相关课件
- JJG1036-2022天平检定规程
- 河北高职单招第二大类历年真题及答案
- 超级单品成就超级品牌报告鸭鸭羽绒服解数咨询
- 2025年腹部外伤试题及答案
- 污水池清理专项安全施工技术方案
- 赛马比赛活动方案
- 江苏省专升本2025年美术学艺术概论试卷(含答案)
- 职业调查报告:室内设计行业分析
- 《农村供水水质管理技术导则》编制说明
评论
0/150
提交评论