C程序设计期末考试(A).doc_第1页
C程序设计期末考试(A).doc_第2页
C程序设计期末考试(A).doc_第3页
C程序设计期末考试(A).doc_第4页
C程序设计期末考试(A).doc_第5页
全文预览已结束

下载本文档

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

文档简介

南京理工大学泰州科技学院课程期末考试试卷 课程名称: C 程序设计 学分: 4.0 教学大纲编号: 试卷编号: 考试方式: 闭卷 满分分值: 100 考试时间: 120 分钟 组卷日期: 2010年 12月20日 组卷教师(签字): 张 微 审定人(签字): 学生班级: 学生学号: 学生姓名: 12. 已知int a34,则*(a+1)+2 等价于 (11) 。A)a12B) *a1 + 2C) *( a1 + 2 )D) a1 + 213. 链表结点的数据类型为结构体类型,其中包括数据域和指针域,而指针域的类型应为 (13) 。A) 自身结构体类型B) 任意结构体类型C)整型D) 字符型14. 调用函数时,实参是一维数组名a,则向函数传送的是: (16) A. 数组的长度B. 数组所有元素的值 C. 数组元素a0的值D. 数组元素a0的地址15. 已知有语句“FILE *fp; int x = 123; fp = fopen(out.dat, w);”,如果需要将变量x的值以文本形式保存到一个磁盘文件out.dat中,则以下函数调用形式中正确的是 (15) 。A. fprintf(%d, x);B. fprintf(fp, %d, x); C. fprintf(%d, x, fp);D. fprintf(out.dat, x);二、填空题(每空1分,共10分)1. 在C语言源程序中,不带任何修饰符的浮点数(例如:3.14)都是按 (1) 类型数据存储的。2已知有声明“ char ch = g; ”, 则表达式ch = ch a + A 的值为字符 ( 2) 的编码。3.以下程序的输出结果是 (3) 。#include #define M 5#define N M+Mmain() int k; k=N*N*5; printf(%dn,k); 4若有声明“ char s10 = remind ”,执行“ puts(s+2); ”后的输出结果是 (4) 。5. 释放动态申请的内存时使用的函数为: (5) 6假定己有声明“char a30”,则将字符串program.正确地保存到数组a中的语句是 (6) 。7若有定义“enum seqmouse, cat, dog, rabbit=0, sheep, cow=6, tiger;”,则执行语句“printf(%d, cat + sheep + cow);”后输出结果是 (7) 。9. 字符串 Linex12Twot的长度是: (8) 10.在使用文件之前,先要 (9) 文件,用完文件后要 (10) 文件。三、填写计算结果(每空3分,共24分)1以下程序运行后输出结果的第一为 (1) ,第二行为 (2) 。 #includevoid main( ) int i = 5; do switch( i%2 ) case 0: i-; break; case 1: i-; continue; i-; printf( %dn, i ); while( i0 );一、 选择题(每题2分,共30分)1. 以下叙述正确的是 (1) 。 A 一个用C语言编写的程序在运行时总是从main函数开始逐条执行语句的 B. main函数是系统库函数 C. main函数中每行只能出现一条语句 D. main函数必须出现在所有其他函数之前2. 以下选项中不能用作变量名的是 (2) 。 Aenum;B_float;Csum;D_123。3. 以下常量表示正确的是 (3) 。A1.5E1.5;B0118;C0x11B;Do115。4以下表示数学式“ab=b|b=c);Bab&b=b)&!(b=c);Dab 0; j -=2 ) k+; Bfor( j = 0; j 15; j += 2 ) k+; Cfor( i = 0; i 0; i -= 2 ) k+;。6. 以下函数定义中正确的是 (6) 。 Aint fun(int a , b) Bint fun(int a , int a) Cint fun( int *a, int b) Dint fun(char a , int b)7. 以下语句printf( %x, %c, 65, 65 ); 的输出结果是: (7) A.65, 65B. 65, AC. 41, AD. 41, 658. 设有以下输入语句,要想得到x = 10, y = 20 的结果,键盘正确输入为: (8) scanf( x = %d, y = %d, &x, &y );A. 10, 208B. 10 208 C. 108 208D. x = 10, y = 2089. 若有声明“ char ss8= red; ”则sizeof(ss)的值是 (9) 。 A3; B4; C8; D1。10.在C程序中,每种变量有各自的有效作用范围和生存期,其中 (12) 在整个程序运行过程中都存在,但只在函数调用时有效。A) 自动变量B) 静态外部变量C)寄存器变量D)静态局部变量11若有声明“char a5 = A, B, C, D, E, *p = a, i;”,则以下语句中不能正确输出a数组全部元素值的是 (10) 。A. for (i=0;i5;i+) printf(%c,ai);B. for (i=0;i5;i+) printf(%c,*(a+i); C. for (i=0;i5;i+) printf(%c,*p+);D. for (i=0;i5;i+) printf(%c,*a+); 第 1 页 共 3 页课程名称: C程序设计 学分: 4.0 试卷编号: 6.以下程序运行后的输出的结果是 (8) 。#include main( ) char *s, *s1 = Here; s = s1; while (*s1) s1+; printf(%dn, s1 - s); 四、程序改错(每空2分,共10分)请改正程序函数中的错误,使它能得出正确的结果,程序中出现的错误在found所标示出的下方。将改正后的语句写在相应空格处。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1.根据形参m的值(2=m=9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。例如,若输入2 则输出: 12 24若输入4 则输出:1234 2468 36912 481216#include #define M 10int aMM = 0 ;/*定义a1010二维数组*/*found*/void fun(int a,int m) (1) int j, k ; for(j=0;jm;j+) for (k=0;km;k+)/*found*/ ajk=k*j; (2) main () int i,j,n; printf(“Enter n:”); scanf (“%d”,&n) ;/*found*/ fun(aM,n); (3) for(i=0;in;i+) for(j=0;jn;j+) printf (“%4d”,aij) ; printf (“n”); 2以下程序运行时输出结果是 (3) 。 #include void f(int *x, int y) *x = y + 1; y = *x + 2; main() int a = 2, b = 2; f( &a, b); printf(%d, %d, a, b); 3. 以下程序运行后输出结果的第一行为 (4) ,第二行为 (5) 。#include int f1( ) static int i = 0,f = 1;return f *= +i;int f2( ) int i = 0,f = 1; return f *= +i;void main( ) printf( %dn, f1( )+ f2( ) ); printf( %dn, f1( )+ f2( ) );5. 以下程序运行时,若键盘输入5,则输出是 (6) 。若键盘输i,则输出是 (7) 。#include #include int strch(char s,char ch) int i; for( i = strlen(s); i = 0; i- )if( si-1 = ch ) return i; if( i 0 ) return 0; main( ) char ch,s1 = as153d5nfghjkm;int k;printf( input ch: );ch = getchar( );k = strch( s1, ch );if( k != 0 ) printf( k = %dn, k );else printf( not foundn );第 2 页 共 3 页课程名称: C程序设计 学分: 4.0 试卷编号: 2. 以下程序的功能是:实现两个复数相加的计算并输出运算结果。 #include #include struct complex float r, i; struct complex *cal(struct complex *x1, struct complex *x2) struct complex *p; p = ( (4) )malloc(sizeof(struct complex); p-r = (*x1).r + (*x2).r; p-i = (*x1).i + (*x2).i; return (5) ; main( ) struct complex *p, x, y; scanf(%f%f%f%f, &x.r, &x.i, &y.r, &y.i); p = cal(&x, &y); printf(result: %.2f+%.2fi, (6) ); free(p); 3. 下面程序是采用函数递归来求两个整数的最大公约数 gcd(m,n),其一般的递推公式为:(m1为m被n整除后的余数) #include gcd( int m, int n ) int g; if ( n = = 0 ) (7) ; else (8) ; return ( (9) ); main( ) int m, n; printf( Input m & n- ); scanf( %d,%d, &m, &n ); printf( m=%d,n=%d,gcd=%dn, m, n, gcd(m,n) ); 六、编程题(8分)编写函数FindMaxMin从数组a中找出最大值和最小值,结果分别用return和指针变量带回。函数原型如下:float FindMaxMin( float *a, int n, float *min );要求:在主函数中定义较大数组a100,输入数组实际数据个数n和数组的值,并调用函数FindMaxMin完成计算,最后在主函数中输出最大值max和最小值min。2. 函数的功能是:删除p数组中字符串中的所有空白字符(包括制表符、回车符及换行符)。输入字符串时用# 结束输入。#include #include fun ( char p) int i,t; char c80;/*found*/ For (i=0,t=0;pi;i+) (4) if( pi!= ) ct+=pi;/*found*/ ct = 0; (5) strcpy(p,c);main( ) char c,s80; int i=0; printf(“Input a string:”); c=getchar(); while(c!=#) si=c;i+;c=getchar(); si=0; fun(s); puts(s);五、完善程序(每空2分,共18分)1 fun1函数的功能是:将数组S的4个元素中大于等于平均值的数保存到a数组,小于平均值的数保存到b数组,变量n、m分别保存a数组和b数组中数据的个数。请填空。 #include #define N 4 double fun1(int *x, int *y, int *z, int *n, int *m) int i; double av = 0; (1) ; for (i = 0; i N; i+) (2) ; av /= N; for (i = 0; i N; i+) if ( (3) ) y*n = xi; (*n)+; else z*m = xi; (*m)+; return av; void main( ) int SN = 60, 80, 50, 90, aN = 0, bN = 0, t, m, n, i, j; double ave; ave = fun1(S, a, b, &n, &m); for (i = 0; i n; i+) printf(%3d, ai); printf(n); for (i = 0; i = av (4) struct complex* (5) p (6) p - r, p - i (7) g = m (8) g= gcd( n, m%n ) (9) g 六、编程题(8分)参考程序如下:float FindMaxMin( float *a,

温馨提示

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

评论

0/150

提交评论