计科C语言试题_第1页
计科C语言试题_第2页
计科C语言试题_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、( 2007 至 20_08_ 学年 第 _2_学期 )课程名称 : 程序设计语言 考试时间 : 110 分钟 课程代码: 8422111 试卷总分: 100 分 考试形式: 闭卷 学生自带普通计算器 : 不允许一、单项选择题(每小题 2分,共计 30 分):名姓1. C 语言函数分为两部分,即函数的首部及( B )。(A) 子函数 (B) 函数体 (C) 形式参数 (D) 声明部分2. 运行一个已编写完成的源程序的步骤是( A )。(A) 编译- 连接-执行 (B) 连接-编译- 执行 (C) 编译- 执行 (D) 连接-执行3对应于 scanf( “%d,%d”,&a,&b

2、); 正确的输入形式是( A )。:号学(A)3,4(B)3 4 5 (C) 3( 按 tab 健)4(D)3454有以下程序#include <stdio.h>void main( ):号班学教 int i,s=0;for(i=1;i<10;i+)if(i%3=0 && i%6!=0) s+=i;printf("%dn",s);程序执行后的输出结果是 ( A ) 。(A) 12(B) 18(C) 14(D) 215有以下程序#include <stdio.h>void main():业专级 int i;for(i=3;i>

3、;=0;i-)switch(i) case 0:printf("%d",i);case 2:printf("%d",i);break;default:printf("%d",i);程序运行后的输出结果是 ( )(A) 3221000(B) 32100( C) 33221100(D) 3210006运行下面程序时 ,如果输入字符 Y,则输出结果是 (A )#include <stdio.h>void main ( ) char ch;scanf("%c",&ch);ch=(ch>='

4、A' && ch<='Z') ? (ch+32) : ch;printf("%cn",ch);(A)Y(B)y(C) z(D) Z7 若有 int a4=1,1,1,1,2,2,2,2,4,4,4,4; 则数组 a 的行数、列数分别为 ( B )(A)2,4(B) 3,4(C)1,2(D)行数不能确定 ,列数为 48如有 char s1="abhd",s2="abefg"则 strcmp(s1,s2) 的结果是 ( C ) 。(A)0(B)不确定(C) 负数( D) 正数9若有以下定义和语

5、句: char s1="512 汶川大地震 ",*p=s1;则语句 printf("%s", p+3); 执行后的结果是 ( B )( C) 汶(D) 512 汶川大地震欲以读写方式建立一个新的文本文件 my1.txt ,B) fp=fopen("my1.txt","w");D) fp=fopen("my1.txt","w+");(A) 512 (B) 汶川大地震 10如果已有如下定义语句: FILE *fp; 则正确的语句是( )。(A) fp fopen("my

6、1.txt","r");(C) fp=fopen("my1.txt","r+");11. 如有如下结构定义 :struct st long xh;struct student *next;此结构适合于表示单向链表是一个变量名下列关于 st 的说法中正确的是 ( ) (A) 只有一个成员 (B)(C) 成员 next 可指向一个 long 型空间 (D) st12. 设有变量定义 int x = 5, n = 5; 计算表达式 x += +n 后,变量 x,n 值分别为 ( )(A) 11, 6 (B) 10, 5 (C) 1

7、0, 6 (D) 5, 613. 以下对一维数组的定义中,正确的是 ( )(A) #define MAX 5(B) int MAX=5;int aMAX;int aMAX;(C) int MAX;(D) #define MAX 5;int aMAX; 14设有定义: int x, *p=&x ; 则以下语句中能正确为变量 x 读入数据的是( )。(A) scanf(“%d” ,&p);(B) scanf(“%d”,x) ;(C) scanf(“ %d”,p) ;(D) scanf(“%d”,*p) ;15. 若有以下定义及语句: struct s1 char a3; int n

8、um;t= a', 'b', 'c',4,*p=&t; 则能输出字符 c'的语句是()。(A) printf( “%cn”,p->t.a2);(B) printf( “%cn”,(*p).a2);(C) printf( “%cn”,p->a3);(D) printf( “%cn”,(*p).t.a2);二、阅读程序题(共 5 个小题, 每小题 4分,共 20分) 1以下程序段的输出结果是: _ #include <stdio.h>void main()int i,j,k; for(i=1;i<=5;i+) p

9、rintf("n"); for(j=1;j<=10-i;j+)printf(" ");/ 本处输出一个空格for(k=1;k<=2*i-1;k+)printf("%c",'*'); 2当程序运行时输入 abcdefg$abcdefg 时,以下程序段的输出结果是: #include <stdio.h> void main() char c;while (c = getchar() != '$') putchar(c); printf("End!n"); 3以下程

10、序段的输出结果是: _#include <stdio.h> void main( ) int n=1234,d;while(n!=0) d=n%10; printf("%d",d);n/=10;4以下程序段的输出结果是: _#include <stdio.h> void main( ) int a3= 1,2,3,4,5,6; int b32,i,j; for (i=0;i<=1;i+) for (j=0;j<=2;j+) bji=aij; printf("array b:n");for (i=0;i<=2;i+

11、)for(j=0;j<=1;j+) printf("%5d",bij);printf("n"); 5、以下程序段的输出结果是: _ #include <stdio.h> void main( ) void f(int *x,int n);int i,a5=1,2,3,4,5;f(a,5);for(i=0;i<5;i+)printf("%d,",ai); printf("n");void f(int *x,int n) int *p,temp,*i,*j,m;m=(n-1)/2; j=x+n-

12、1; p=x+m;for(i=x;i<=p;i+,j-) temp=*i; *i=*j; *j=temp; 三、程序改错题(本题共有 5处错误,每处 2 分,共 10分) 下面程序的功能是 : 找出 5500之内的完数。提示:一个数 n恰好等于它的所有因子之和 (因子不包括 n本身),如 6 的因子为 1、2、 3,而且 6=1+2+3,因此 6 就是一个完数。输出结果格式为: 6 its factors are 1,2,3下面程序共有 5 处错误(包括语法错误和逻辑错误) ,请找出其中的错误,并改正之。 请在答题纸上写出错误所在行号。(每找对 1 个错误,得 1分,每修改正确 1 个错

13、误,再得 1分。) #include<stdio.h> void main()L1: int i,m,t;L2: for(i=1;i<=500;i+)L3: for(t=0,m=1;m<=i;m+)L4: if(i%m=0) t=t+m;L5: if(m=i)L6: printf("%d its factors are 1 ",i);L7: for(m=1;m<i;m+)L8: if(i/m=0)L9: printf(",%d",&m);L10: printf("n");四、程序填空题(每空 2分

14、,共计 20 分)1在一个已经按升序排列的数组中,插入一个新元素到适当的位置,使数组仍然保持 升序。请填空以完善程序。#include <stdio.h>void main() int a11=2,4,5,7,9,10,12,30,45,60,x,i,p; printf(" 请输入一个待插入的整数 :"); scanf( (1) ); p= (2) ;for(i=0;i<10;i+) if(ai>=x) p=i; break; for(i=10;i>p;i-) ai=(3) ;(4) ;for(i=0; (5) ;i+) printf(&quo

15、t;%d,",ai);2. 下面程序的功能是计算字符串中实际字符的个数,即实现和字符串处理函数 strlen 相同的功能。请填空以完善程序。int MyStrlen(char str)int len = 0, i;for (i=0; stri!=(6) ; i+)(7) ; return len;3. 下面程序的功能是找出 200-300 之间所有的素数, 并以每行 10 个数的格式显示在屏 幕上。请填空以完善程序。# include <stdio.h># include <math.h>void main() int m,k,i,n=0;for(m=201;m<=300;m=m+2) k=sqrt(m);for (i=2;i<=k;i+)if (m%i=0)( 8);if (i>=k+1) printf("%d ",m);(9) ; if(n%10=0)( 10) ;五、编程题(第 1小题

温馨提示

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

评论

0/150

提交评论