C语言程序设计A卷_第1页
C语言程序设计A卷_第2页
C语言程序设计A卷_第3页
C语言程序设计A卷_第4页
C语言程序设计A卷_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、哈尔滨工业大学(威海)2007/2008学年秋季学期 C语言程序设计 笔试试题(A卷)题号一二三四五六笔试(70%)综合(30%)总分分数 号学名姓试卷说明:1. 笔试卷面总分100分,取卷面成绩的70%计入总分;2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;4. 答题时间120分钟。一、单项选择题。请把答案填入下面框中, 不允许出框线。(本题16分,每小题2分) 题号12345678答案注意行为规范 遵守考试纪律1. 以下选项中合法的C语言用户标识符是( )。A) long B) _2Test C) 3Dmax D

2、) A.dat2. 有以下程序main() int a=0, b=0, c=0, d=0;if(a=2) b=2; c=4;else d=3;printf("%d,%d,%d,%dn",a,b,c,d);则程序输出( )。A) 0,1,2,0 B) 0,0,0,3C) 1,1,2,0 D) 编译有错教研室主任签字:3. 用语句scanf(“%c%c%c”,&c1,&c2,&c3);输入”a,b,c”时,变量c1、c2、c3的值分别为( )。A) a, b, cB) a, b, C) a, , ,b D) a, , c4. 有以下程序段main( )i

3、nt k=0;while(k=1) k+;则while循环执行的次数是( )。A) 无限次 B) 有语法错,不能执行C) 一次也不执行D) 执行1次5. 有以下程序:#include <stdio.h>#include <string.h>main()char *p=”abc1010fghijk0”;printf(“%d”,strlen(p);执行后的输出结果为( )。A) 6B) 4C) 12D) 146. 设有说明语句:int a=1, b=2, c=3, d=4, m=2, n=2; 则执行(m=a>b) && (n=c>d)后n的值为

4、( )。A) 1 B) 2C) 3D) 47. 表达式0x13&0x17和0x13|0x17的值分别是( )。A) 19, 23B) 23, 19C) 248, 232D) 236, 2008. 设有以下语句typedef struct TT char c;int a4; CIN;则下面叙述中正确的是( )。A) 可以用TT定义结构体变量 B) TT是struct类型的变量C) 可以用CIN定义结构体变量 D) CIN是struct TT类型的变量二、填空题。请按序号把答案填入下面框中, 不允许出框线。(本题20分,每空1分) 题号答 案题号答 案1112123134145156167

5、1781891910201. 下面程序的功能是输出二维数组的所有元素值,请完成程序。main( )int a34=1,3,5,7, 9,11,13,15, 17,19,21,23;int *p;for( 【1】 ; p< 【2】 ; p+) printf("%dt", *p); 2. 有以下函数int fun (char *s) char *t=s;while(*t+);return(t-s-1);该函数的功能是 【3】 。3. 读入三个浮点数,取出其小数部分分别输出,完成下列程序。void splitfloat(float x, float *fracpart)in

6、t intpart= 【4】 x;*fracpart=x - 【5】 ;main()int i;float x, temp;printf("Enter 3 float point numbers:n");for(i=0;i<3;i+)scanf("%f",&x);splitfloat(x, 【6】 );printf("Fraction Part= %5.4fn", temp);4. 下列程序段为链表结点类型定义,请填空。 【7】 student int num;char name20;int score; 【8】 nex

7、t;5. 如下图所示,设指针p指向的结点已经申请空间,并进行了赋值,写出将结点p插入头节点h之前的C程序语句。datanextdatanextdataNULL·····datanextph 【9】 ; 【10】 ;6. 如下图所示,设指针q指向要删除的结点,写出删除该结点的语句。hdatanextdataNULL·····qdatanext 【11】 ; 【12】 ;7. 下面程序的运行结果为 【13】 。main() enum weekday sun, mon, tue, wed, thu,

8、fri, sat a,b,c; a=sun;b=tue;c=sat; printf("%d%d%d", a,b,c);8. 在C语言中,对于文件的操作主要是通过调用包含在头文件”stdio.h”的标准库函数来实现的。因此,在对文件操作的C程序中,必须添加包含此头文件的预处理指令,该指令为 【14】 。假设在C盘根目录下有一文本文件hit.txt,现在要以读写方式打开此文件并在打开后立即关闭。请完成下面的C程序语句: 【15】 fp;fp = fopen( 【16】 , “rw”); 【17】 ;9. 若有定义语句:int a=7; float x=2.5, y=4.7; 则

9、表达式x + a % 3 * (int) (x+y) % 2 / 4的值是 【18】 ;10. 以下函数的功能是:输出三个变量中的最小值,请完成该函数。int GetMin(int x1, int x2, int x3) int t1 = 【19】 ; int t2 = 【20】 ; return (t1 > t2 ? t2 : t1);三、请把下列程序运行结果填入答案框中,不允 许出框线,用“”表示回车。(本题24分,每小题3分) 题号12345678答案1. #include <stdio.h>main( ) int p=30;printf("%dn"

10、,(p/3>0 ? p/10 : p%3);2. #include <stdio.h>main( )char c1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar(); c6=getchar();putchar(c1);putchar(c2);printf("%c%cn",c5,c6);程序运行后,若从键盘输入 (代表回车换行):1357 24请把输出结果填入答案框中。3. #include <stdio.h>main()

11、 int a=1, b; for(b=1;b<=10;b+) if(a>=8) break; if(a%2=1) a+=5;continue; a-=3; printf("%dn",b); 4. #include <stdio.h>main( )int a = 1, 2, 3, 4, 5, 6, *p = a;*(p+3) += 2;printf ( "%d,%d", *p, *(p+3);5. #include <stdio.h>char * fun(char *str) return str="fun&q

12、uot; main( ) char *str="ction" printf("%s,%cn", fun(str)+1, *fun(str)+1);6. #include <stdio.h>main( ) char *s="two","three","four","five"char *p=s1;char *q=s3;q+=2;printf("%s,%s",(+p),(q-);7. #include <stdio.h>struct s

13、t int x; int *y;*p;int dt4=10,20,30,40;struct st stMatrix4=50,&dt0,60,&dt1,70,&dt2,80,&dt3;main() p=stMatrix;printf("%d,%d",+(p->x),*(p+2)->y);8. #include <stdio.h>main( )int a=0,b=2,c=3;switch(a)case 0: switch(b=2)case 1:printf("&");break;case 2:p

14、rintf("%");break;case 1: switch(c)case 1:printf("$");case 2:printf("*");break;default:printf("#");四、根据功能描述改正程序中的错误。 不得增行或删行,不得更改程序结构。(本题10分)1. 要求以下程序的功能是计算1+1/2+1/3+1/10的和。(本小题4分)#include <stdio.h>main( ) int n; float s;for(n=10;n>1;n-)s += 1/n;printf

15、("%6.4fn",s);2. 下面函数Squeez()的功能是删除字符串s中所出现的与变量c相同的字符。(本小题6分)void Squeez(char s, char c);int i, j;for (i=0,j=0; si!='0' i+) if (si != c) sj = si; j+; si='0'五、请用标准程序流程图描述下列问题的算法 (本题10分,每小题5分)1. 依次从键盘输入10个不同的整型数据,请查找出这些数据中的最大值和最小值,并指出它们分别是第几次输入的。2. 某人身上有人民币50张,面值分别为20元、10元、5元和

16、1元。请分别统计出这些不同面值人民币的张数并计算出这50张人民币的总面值来。 六、编程题(本题20分) 1. 请从键盘输入一个长度为29的字符串,要求分别统计出该字符串中所包含的英文字符、数字字符、空格字符以及其他字符的个数。请写出解决该问题的完整C程序。(本小题6分)2. 输入任意长度的字符串str1和子字符串str2(str2的长度要小于str1的长度),请统计出str1中包含有几个子字符串str2,并计算str1中出现最后一个子串str2之前已有多少个字符出现。 (本小题8分)3. 某数理化三项竞赛训练组有4个人,其中有且仅有一个人的一项成绩不及格(小于60),请找到此人并输出其所有成绩。要求使用指针函数,完成下列程序。(本小题6分)#include <stdio.h>int * seek( int ) int i, *pnt_col; /*定义一个(列)指针变量pnt_col */pnt_col = ; for(i=0; i<3; i+) if( ) return(pnt_col); main( )int grade43=6

温馨提示

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

评论

0/150

提交评论