




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京林业大学2005-2006学年第1学期考试试卷试卷名称:C语言试题 课程所在院系:经济管理学院考试班级 学号 姓名 成绩 试卷说明:1. 本次考试为闭卷考试。本试卷共计6页,共5个大题,卷面100分,请勿漏答;2. 考试时间为120分钟,请掌握好答题时间;3. 答题之前,请将试卷和答题纸上的考试班级、学号、姓名填写清楚;4. 本试卷第一、第二和第三试题答案写在本试卷纸上,第四和第五题写在答题纸上;5. 答题完毕,请将试卷和答题纸正面向外对叠交回,不得带出考场;考试中心提示:请你遵守考场纪律,参与公平竞争!1、 基本知识题( 共52分)1. 填空题(未特别说明,每空2分,共14分)l printf( “%c”, 101); 该语句执行后屏幕上的显示值为: 。l main( ) int m = 65; m+; printf( “%c”, m); 屏幕上m显示为: 。 l main( ) int m, n = 2; scanf( “%d” , &m ) ;switch ( m ) case 0: n=1; case 1: n+; case 2: n+; break;printf( “%d” , n ); 当程序运行并键入0时,屏幕上n的显示值为: ;如键入1时,屏幕上n的显示值为: 。l int y = 888; main( ) int y=8; f1(y) ; printf( “1. y=%dt” , y);f2(&y); printf( “2. y=%dt” , y);f3( ); f1( int y ) y = 0; f2( int * y ) *y = 88; f3( ) printf(“3.y=%d”,y); 执行后屏幕上的显示值为:1. y= 2. y= 3. y= 。2选择题(在a、b、c和d中选择一个答案,每空3分,共12分)l main( ) char m = a,b,c ; 该程序省略了其它无关语句,请回答:数组m是一个 。 可选答案如下:a.一维字符数组, strlen(m)的值不可预期. b.字符串,strlen(m)的值为3. c.一维字符数组, strlen(m)的值为3. d.字符串,strlen(m)的值不可预期.l char str = “BFU” ; 上面的语句可以用指针写成如下形式:char * str = “BF U ” ; 请回答这两种形式是 。可选答案如下: a. 完全等价的.b. 不等价,因为str 中的str是一个常量,而后者是一个变量 c. 不等价的,因为str 中的str是一个变量,而后者是一个常量d. 不等价的,因为后者不是以空结尾l main( ) char *s ; *s = A ; printf( “%d”, *s ); 该程序在编译和链接时 。可选答案如下: a. 无编译和链接错误,只是有编译警告信息,程序能够显示65b. 无编译和链接错误,也无编译警告信息,程序能够显示65 c. 产生编译错误,程序不能够显示65 d. 产生编译警告信息,程序不能够显示65l 在建立链表的结点时通常使用动态分配函数malloc( ),使用它而不使用结构数组的一个重要原因是 。可选答案如下: a. 结构数组不能实现链表b. malloc( )在堆中分配内存空间,可以节省堆栈空间 c. 使用结构数组比使用malloc( )效率低d. 使用malloc( )函数可以在需要时生成一个结点,不受链表长度的限制,且在不需要时可以收回链表所占的内存空间。3判断题(正确在括弧中打,否则打。每题2分,共26分)l char ch =对; ( )l main( ) static int m =0,1,2,3,4,5,6,7,8,9; int *q; q=m; q+; printf( “%d”, *(q+5) ); 屏幕显示为5 ( )l main( ) int *m,n=8,y; m=&n; y=*m+; printf(“%d”,y); 显示y值为8。 ( )l main( ) int p=2; printf (“%d,%d”, +p, p+); 显示值为3 , 2。 ( )l struct td int x; int y ; mess;struct td *p; main( ) mess.i = 10; printf(“%d”, p- i ) ; 屏幕显示为10。 ( )l main( ) char *str=“Beijing0Forest”; printf( “%s”,str); 显示为Beijing 。( )l #include “stdio.h”main( ) FILE *fp; float f=3.1416;if(fp=fopen(“c:testtest.txt”,“wb”)=NULL) printf(“File create error(s)”); exit(0); fwrite(&f,sizeof(float),1,fp);fclose(fp); 该程序能将f的值写入c盘test目录下的test.txt文件。( )l 在某类机器的c程序中,int的长度为4个字节,这时可以将int用“typedef int INTEGER ;”语句定义为INTEGER来替代int。现将此程序移植到int长度为2个字节的机器上,这时可以将“typedef int INTEGER ;”改为 “ typedef long INTEGER ; ” , 即可以解决移植的问题。( )l 当未给出静态int型数组中每个元素的初值时,每个元素的初值缺省为零。( )l 静态全程变量的作用域在其所处的程序文件中有效。( )l 3个程序员分别编写了能交换m和n值的程序.程序员a编写的程序:main( ) int t, *p1, *p2,m=1, n=2 ; p1=&m; p2=&n; t = *p1; *p1=*p2; *p2= t ; printf( “m=%d,n=%d” ,m,n);程序员b编写的程序:main( ) int *p, *p1, *p2, m=1, n =2; p1=&m; p2=&n; *p = *p1; *p1= *p2; *p2= *p;printf( “m=%d,n=%d” ,m,n);程序员c编写的程序:main( ) int *p, *p1, *p2,m=1, n =2; p1=&m; p2=&n; p = p1; p1= p2; p2= p;printf( “m=%d,n=%d” ,m,n); a程序员的程序在无编译错误也无警告信息的情况下能实现m和n值的交换. ( )b程序员的程序在无编译错误的情况下能实现m和n值的交换. ( )c程序员的程序在有警告信息的情况下能实现m和n值的交换. ( )二、带参数的main( )主函数可以将命令行的参数带入程序进行处理。编译连接后,在命令行输入文件名和参数:C: example.exe Beijing China 屏幕上出现以下信息:Beijing China。在答题纸上回答以下问题:1 main函数的形参int argc 和 char * argv 具有什么含义?(4分)2 程序中*argv 是数组,数组名是指向数组首元素的指针常量。程序中出现了“ argv +; ”语句,这岂不是对常量做增1运算,为什么?(4分)main( int argc , char * argv ) while (argc 1) argv +; printf(“%s ” , *argv);argc - ;三、链表是一种重要的数据结构,链表中的每一个结点应包含两部分数据元素:用于处理的用户数据;链表中其它结点的地址数据。C语言用结构处理链表,一般用malloc( )类型函数在堆中(heap)动态的存储分配链表。下面程序是生成链表的程序,请在下划线处加上适当的语句完成下面的程序。(每空4分,共20分)#define NULL 0struct student int num ; char name8; float score; * next; /* 保存链表中下一个结点的地址 */;struct student * head ; /* 全程指针变量 */struct student * CreateNode( ) /* 建立节点函数 */ struct student * p ;p=(struct student *) malloc (sizeof( ) ); if ( p = NULL ) printf( “Memory allocated failure!”); exit(0); return ( );/* 返回节点指针 */struct student * CreateLink( ) /* 建立链表函数 */ int i = 0 ; struct student * p , *q ; p=q=CreateNode ( ); scanf( “%d , %f”, &p-num,&p-score); while (p-num!=0) i+; if ( i = 1) head = p ; else = p ; /* 连接节点 */ q = p; p=CreateNode ( ); /*建立新的节点*/ scanf( “%d , %f ”, &p-num,&p-score); q-next = ; /* 节点尾部处理 */ return (head);四、 在下划线处填入屏幕显示结果。(10分)main( ) char * str = “Beijing+Forestry+University”; char *p, *q ; int j ; clrscr( ); printf (“%sn”, str) ; p = str + 8; q = str + 17; *(str + 7 ) =0; *(p + 8 ) = 0; printf (“%sn”, str) ; printf (“%sn”, p ) ; printf (“%sn”, q ) ; for( j=0; str j ; j+) putchar(str j ); 五、上机实验试题。(共10分)l 当出现LINK(连结)错误Linker Error:Unable to open input file C0S.OBJ时,最有可能的错误是:( )(2分)选择答案:a. 某行缺少分号结尾或者缺少花括弧 b. 系统函数拼写出现错误 c. TC菜单Options中的Directories的配置错误d. 程序员设计的算法出现错误l Error: D:TCNONAME.c 8: Statement Missing ; in f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年齐齐哈尔市富裕县社会保险事业中心公开招聘公益性岗位人员1人考前自测高频考点模拟试题及一套完整答案详解
- 2025年菏泽市省属公费师范毕业生专项招聘(421人)模拟试卷及参考答案详解一套
- 2025年宣城宁国市人民医院招聘医疗卫生人才15人考前自测高频考点模拟试题及答案详解(有一套)
- 2025年春季中国石油高校毕业生招聘考前自测高频考点模拟试题及答案详解(夺冠)
- 2025年甘肃省武威市事业单位招聘628人【教育岗48人】考前自测高频考点模拟试题附答案详解(典型题)
- 2025福建漳州市云霄立人学校招聘中学教师模拟试卷有答案详解
- 2025江苏苏州市港航投资发展集团有限公司专业化青年人才定岗特选人员考前自测高频考点模拟试题及答案详解(网校专用)
- 2025贵州江口县人民医院招聘青年就业见习岗位人员考前自测高频考点模拟试题及答案详解(易错题)
- 2025湖南永州市东安县招聘第一批就业见习岗位121人模拟试卷附答案详解(典型题)
- 2025昆明市晋宁区文化和旅游局招聘编外工作人员(1人)模拟试卷含答案详解
- 燃气设备安装调试方案
- 2025年二外小升初真题卷及答案
- 术后鼻出血处理课件
- 2025年乡村医生考试试题及答案
- 计算与人工智能概论(湖南大学信息科学与工程学院)学习通网课章节测试答案
- 环保行业2025年财务表现对比研究方案
- 纪检线索处置流程课件
- 湖湘文化教学课件
- 无人机飞行器维护与保养方案
- 2026版正禾一本通高三一轮总复习数学(湘教版)-1 第一节 导数的概念及其意义、导数的运算
- 急性食物中毒抢救护理常规
评论
0/150
提交评论