C 程序设计》试题.doc_第1页
C 程序设计》试题.doc_第2页
C 程序设计》试题.doc_第3页
C 程序设计》试题.doc_第4页
C 程序设计》试题.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

内蒙古机电职业技术学院 试卷 系 _ 班级_ 学号 _ 姓名 _ 考场_题号一二三四五总分得分 考生注意: 1. 试卷和答题纸上的 “系,班级,学号,姓名,考场”项目都要填上; 2. 所有答题内容皆写在答题纸上, 交卷时将试卷和答题纸一起交上; 3. 不遵守上述者将不给予登记这次考试成绩.一、 概念题 (每小题4分)1 试写出 数学式 的C语言表达式 . 2 设有如下定义 int x = 6; 执行语句 ; 后 请写出 x 的值 . 3. 设有如下定义 int x = 5, y = 6; 请写出: 如下程序段执行后的输出结果 . printf(= %d ,( +x = y+ )|(x = 8)? -x : -y ) ; printf(# %d, %dn, x, y); 4. 请写出: 如下程序段执行后的输出结果 int a; a = -1; a = a | 0377; printf(“ %d %o n”, a, a ); 5. 设有定义 char st80, i, c; 今要求将字符串 “This is a string.” 完整记录于 st中, 试问如下四种输入方法中, 哪些方法能达到这个要求. A. gets( st ); B. scanf( “ %20s ”, st ); C. for( i=0; i16; i+ ) sti=getchar(); sti=0; D. i=0; while( ( c = getchar() ) != n ) sti+ = c; sti=0; 6 请写出: 如下程序段执行后的输出结果 char *alpha5 = “ABCD”, “EFGH”, “IJKL”, “MNOP”, “QRST” ; char *p = alpha; int i = 0; while ( i 4 ) printf( “%c ”, *( *(p+i+)+1 ) ); 7. 设有定义 int a4 = 0,4,5,13, *p; 请写出: 如下程序段执行后的输出结果 . p = &a2; printf(*-p %dn, *-p); printf(*p+ %dn, *p+); printf(+(*p) %dn, +(*p); printf(%d %d %d %dn,a0,a1,a2,a3); 8. 设有定义 struct date int day; char month; int year; dd, *pd = ⅆ 请写出: 引用结构体成员 dd .day 的其它两种描述形式 . 二 阅读题 (每小题5分) ( 阅读下列程序, 写出程序的输出结果,或根据要求回答 )1。 程序2.1 #include stdio.hmain() int n,a,x; char cc = #; scanf(%d, &n); /*/ 输入 4 /*/ for( x=0; x0; a- ) putchar(cc); for( a=0; an; a+ ) printf( %c, 97+a ); printf(n); 2。程序2.2 int d=1;func2 ( int p ) static int d=4; d += p+; printf(- p= %d d= %d , p, d); main() int i, a=5; for(i=0; i2; i+) func2 (a); d += a+; printf(= a= %d d= %dn, a, d); 3程序2.3 main() char a10=ABCD, b10=12345678; int i, j=1; for(i=3; bi-1!=0; i+) ai=bi-1; a-i=0; printf( Result 1 ); puts(a); while ( aj+ != 0 ) bj=aj; printf( Result 2 ); puts(b); 4.程序2.4 double func4 ( double d, int n ) return ( n ? d*func4 ( d, n -1 ): 1.0 ); main() double x, w; int n; x = 6.0; w = func4 ( x, 4 ); printf(x= %lf , x); printf(w= %lfn, w); 5.程序2.5 void func5 ( int *a, int n ); main() int i = 0; static int ab8 = 9,3,2,5,8,1,6,0; func5 ( ab, 8 ); while ( i 8 ) printf( %d, , abi+); void func5 ( int *a, int n ) int i, t, *p; for(i=1; in; i+) for( p=a; p*(p+1) ) t=*p; *p=*(p+1); *(p+1)=t; 6.程序2.6 分析如下指针函数模块sample( )的功能: 若一次键入数据: 11 20 9 24 16 0 38 46 请写出printf输出结果, 并且画出 head 所指向的链表示意图. #include stdio.h typedef struct nodeint data; struct node *next; JD; JD *sample ( ) JD *head, *q, *p; int count=0, sum=0; head=(JD*)malloc(sizeof(JD); q=(JD*)malloc(sizeof(JD); head-next=q; for(scanf(%d,&q-data); q-data!=0; scanf(%d,&q-data) q-next=(JD*)malloc(sizeof(JD); q=q-next; q-next=NULL; p=head-next; while( p!=NULL ) count+; sum += p-data; p = p-next; printf(count= %d ,count); printf(sum= %dn, sum); return (head); 三 改错题 (8分) 下列程序中有八个错误, 按程序功能的要求, 指出和纠正所有错误,(程序行序不能改) 并以将 #xx 行改为 yyyy 的形式进行解答. 例答: #3行改为 int max=0,min=100, f=1; 程序功能: (1)输入若干个学生成绩, 若输入数据大于100或小于0(除 -999外), 则不作记录, 重新输入; 当输入 999 , 则输入结束. 统计所有输入成绩的最大值,最小值,成绩个数,平均值, 并输出之. #1main() #2 int mark, n = 0, sum = 0; #3 int max = 0 , min = 100; #4for( ; ; ); #5 scanf(%d, mark);#6 if ( mark = -999 ) break; #7 if ( mark 100 )#8 printf(mark100, Reinput!n); #9 break; #10 n+; sum += mark; #11 if ( markmax ) max = mark#12 else min = mark; #13 #14 sum %= n; #15 printf(%d,%d,%d,%dn, max,min,n,sum);#16 四. 填空题 (16分) (阅读下列程序说明和相应的C程序, 把缺少的内容填入 _ 处, 完善该程序.)1.程序 7 说明 本程序运行的结果, 输出 如右下 所示结果. 程序7 #define N 8main() int i, j, k ; 1 2 3 4 5 6 7 8 int aN; 8 1 2 3 4 5 6 7 for( i=0; iN-1; i+ ) 7 8 1 2 3 4 5 6 a i = i +2 ; 6 7 8 1 2 3 4 5 a N-1 = _(1)_ ; 5 6 7 8 1 2 3 4 for(j=0; jN ; j+) 4 5 6 7 8 1 2 3 gosub( _(2)_ ) ; 3 4 5 6 7 8 1 2 for(k=0; k0; i-) _(4)_ ; a0=t; 2程序 8 说明 本程序中函数 hw() 用于判断一给定字符串是否为 回文 (即顺序读与反序读一样,例:字符串 “ABCBA”是回文 )若是回文,则hw()返回1,否则返回0. 程序 8 int hw( char *s ) char *head, *tail;int i=0;while ( _(1)_ ) i+;head = s;tail = _(2)_ ; while ( head tail ) if ( *head+ != _(3)_ )return 0; _(4)_ ; main() char cc=ABCDefgfeDCBA; printf(nnt= %d n, hw( cc ) ); 五 编程题 (14分) ( 按指定功能、要求和程序框架, 在虚线部位完善语句(段), 编成可运行的C程序 )1 程序功能: 建立信息数据文件 现有一批学生( 50个), 每个学生信息包括学号,姓名,成绩. 试将这批学生信息以文本文件的方式存储到磁盘文件 d:dbfstu_list.dat 中 ( 这里子目录 d:dbf 已经存在 ). 操作要求: 全部信息先存储在内存, 再成批写入外存. #include struct student_type - - - - - - - - - - - stu50, *ps ; main() - - - - - - - - - - - - - - - - - - for( i = 0; i - - - ; i+ ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /* 写打开文本文件语句 */ for( ps = stu ; ps - - - - ; ps+ ) - - - - - - - - - - - - - - - - - - - - - - - 2 查找功能: 对一个阶的矩阵(元素为整数), 找出其中最大元素及其在矩阵中的行、列号.程序要求: (1), 有两个函数模块: main 和search. 矩阵元素从键盘输入和查找结果输出的功能皆在 main( ) 模块中; 而查找功能在 search 模块中. (2), 模块间数据传递不能用全局量, 且search 函数中参数不能用数组. #define N 5 void s

温馨提示

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

评论

0/150

提交评论