收藏 分享(赏)

C语言程序设计试题及答案88057.doc

上传人:dreamzhangning 文档编号:2235663 上传时间:2018-09-06 格式:DOC 页数:37 大小:148KB
下载 相关 举报
C语言程序设计试题及答案88057.doc_第1页
第1页 / 共37页
C语言程序设计试题及答案88057.doc_第2页
第2页 / 共37页
C语言程序设计试题及答案88057.doc_第3页
第3页 / 共37页
C语言程序设计试题及答案88057.doc_第4页
第4页 / 共37页
C语言程序设计试题及答案88057.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、C 语言程序设计(本试卷包括第一卷和第二卷,答卷时间总共 120 分钟)第一卷第一部分:基础知识(20 项,共 40 分)1一个 C 语言程序是由( ) 组成的。A主程序 B子程序 C函数 D过程2转换说明符%x 的输出形式是( ) 。A十进制 B八进制 C十六进制 D二进制3若 a、b 均为 int 型变量,且 a=100,则关于循环语句 for(b=100;a!=b;+a,+b)printf ( “ -“) ;的正确说法是( ) 。A循环体只执行一次 B死循环C循环体一次也不执行 D输出-4若 x、y、z 均为 int 型变量,则执行下列语句后的 z 值为 ( ) 。x=1; y=2; z

2、=3; z=(xy)?z :y ; z = (z=1;n-),下列语句实现将 S2 所指字符数组中前 n 个字符复制到 S1 所指字符数组中,其中代码不正确的是( ) 。A*S1+=*S2+ BS1n-1=S2n-1C*(S1+n-1)=*(S2+n-1) D*(+S1)=*(+S2 )17调用函数的实参与被调用函数的形参应该有如下关系( ) 。A只要求实参和形参个数相等 B只要求形参和实参顺序相同C只要求实参和形参数据类型相同 D上述三点均需具备18联合体成员的数据类型 ( ) 。A相同 B可以不同也可以相同 C长度一样 D是结构体变量19由系统分配和控制的标准输出文件为( ) 。A键盘 B

3、磁盘 C打印机 D显示器20C 语言标准库函数 fread(fd,buffer,n)的功能是( ) 。A从文件 fd 中读取长度不超过 n 个字节的数据送入 buffer 指向的内存区域B从文件 fd 中读取长度不超过 n-1 个字节的数据送入 buffer 指向的内存区域C从文件 fd 中读取长度不超过 n 个字符送入 buffer 指向的内存区域D从文件 fd 中读取长度不超过 n-1 个字符送入 buffer 指向的内存区域第二部分:简单程序(12 项,共 30 分)21下列程序main() int x,y,z;x=y=2;z=3;y=z+-1;printf(“%dt%dt”,x,y);

4、y=+x-1;printf(“%d t%dn”,x,y);y=z-1;printf(“%dt%dt”,z,y);y=-z-1;printf(“%dt%dn”,z,y);运行后输出的数据为_。A. 3 1 4 2 B. 3 1 3 3 C. 2 2 3 2 D. 2 1 3 22 4 1 3 2 4 2 2 3 3 2 1 1 3 1 222.下列程序main() int i,j;char *a,c;a=”computer”;printf(“%s”,a);for(i=0,j=7;i%sn”,a);c=aj-1,i=2+j;printf(“a%d=%cn”,i,c);运行后输出的数据为_ .A.

5、computer-computer B. computer-retupmoca3=u a5=mC. computer-retupmoc D. computer-retupmoca4=p a2=t23.下列程序int sum(int n) int p=1,s=0,i;for(i=1;imain() char a40,b40;int i,j;printf(“Enter the string:”);scanf(“%s”,a);i=j=0;while(ai!=0) if(!(ai=0int i,j;printf(“Enter the string:”);scanf(“%s”,a);i=0;while(

6、ai!=0) if(ai=Achar ch;double f;x;(A) 7 (B) 11 (C)8 (D) 1019、若有下面的说明和定义:struct test int m1;char m2;float m3;union uu char u15;int u22;ua; myaa;则 sizeof(struct test)的值是 ( ) 。(A) 12 (B) 16 (C) 14 (D)920、若要打开:A 盘上 user 子目录下名为 abc.txt 的文本文件进行读、写操作,下面符合此要求的函数调用是( ) 。(A)fopen(“A:userabc.txt“ , “r“) (B) fop

7、en(“A:userabc.txt“,“r+“)(C)fopen(“A:userabc.txt“,“rb“) (D) fopen(“A:userlabc.txt“,“w“)第二部分:简单程序(12 题,共 30 分)21、以下程序的运行情况是( ) 。main()int i=1,sum=0;while(i=85“);case B:case C:printf(“=60“);case D:printf(“=85 (B)=60 (C)=60=10) break;if(b%3=1) b+=3;continue;printf(“%dn“,a);(A)101 (B) 6 (C)5 (D)426.以下程序的

8、输出结果是( ) 。int a, b;void fun() a=100;b=200;main() int a=5,b=7;fun();printf(“%d%dn“,a,b) ;(A) 100200 (B)57 (C)200100 (D)7527.下面的程序执行后,文件 testt 中的内容是 ( ) 。#include void fun(char *fname,char *st) FILE *myf; int i;myf=fopen(fname,“w“);for(i=0;imain()static char s30=“abcdefg“;static char t=“abcd“;int i,j;

9、i=0;while(si!=0)i+;j=0; whi1e(tj!=0) si+j=tj;j+; si+j=0;printf(“%sn“,s);(A) abcdabcdefg (B)abcdefg (C)abcd (D)abcdefgabcd 29.有如下程序main() char ch25=“6937“,“8254“,*p2;int i, j, s=0;for(i=0;i0;j+=2)s=10*s+pij-0;printf(“%dn“,s);该程序的输出结果是( ) 。(A)69825 (B)63825 (C)6385 (D)69382530.若已建立如下图所示的单向链表结构在该链表中,指针

10、 p,s 分别指向图中所示结点,则不能将 s 所指的结点插入到链表末尾仍构成单向链表的语句组是( ) 。(A) p=p-next;s-next=p;p-next=s;(B) p=p-next;s-next=p-next;p-next=s;(C) s-next=NULL;p=p-next;p-next=s(D) p=(*p).next;(*s).next=(*p).next; (*p).next =s;31.请选择正确的运行结果填入( ) 中。include int x,y;num() int a=15,b=10;int x,y;y=a-b;y=a+b;return;main() int a=7

11、,b=5;x=a+b;y=a-b;num(); printf(“%d,%dn“ , x,y) ;(A) 12,2 (B) 5,25 (C)2,12 (D)不确定32.以下程序的输出结果是( ) 。#define M(x,y,z) x*y+zmain() int a=1,b=2 ,c=3;printf(“%dn“,M(a+b,b+c,c+a); (A)19 (B)17 (C)15 (D)12第二卷说明:(1)第二卷含两大题,均属填空题,每题各有 5 个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的 C 语言程序。(2)每空栏填对得 3 分,两大题共 10 个空

12、栏,全对得 30 分。试题一:有一函数,实参传来一个字符串,统计此字符串中字母、数字、空各和其他字符的个数,在主函数中输入字符串以及输出上述的结果。int letter,digit,space,others; /*是全局变量 */ main() int count(char _(1)_);char text80;printf(“nlnput string:n“);_(2)_;printf(“string:“);puts(text);letter=O;digit=O;space=O;others=O;_(3)_;printf(“letter:%d,digit:%d,space:%d,other:

13、%dn“,letter,digit,space,others); int count(char str)int i;for(i=O;stri!=0 ;i+)if(_(4)_=aelseprintf(“%d n”,m-);A、7 B、6 C 、 5 D、423、 当 a=1, b=3, c=5, d=4 时,执行下面一段程序后,x 的值为_if (amain( ) FILE *fout;char ch;fout=fopen( abc.txt,w);ch=fgetc(stdin);while(ch!=#)fputc(ch,fout);ch=fgetc(stdin);fclose(fout);A、函

14、数 fopen 调用形式有误 B、输入文件没有关闭C、函数 fgetc 调用形式有误 D、文件指针 stdin 没有定义25、 有以下程序,执行后输出结果是_main()union unsigned int n;unsigned char c;ul;ul.c=A;printf(“%cn”,ul.n);A、产生语法错 B、随机值 C、A D、6526、 有以下程序,执行后输出结果是_main() int m 3=1,4,7,2,5,8,3,6,9;int i,k=2;for(i=0; imain( ) char ch;while(ch=getchar()!=n) if(ch=Aif(x=0|x=

15、1)return (2);p=x*func(x-1);return (p);main( ) printf(“%d n”,func(4);A、8 B、12 C 、 24 D、4832、 下面的程序运行后,全局量 t.x 和 t.s 的正确结果为 _struct tree int x;char *s;t;func(struct tree t) t.x=10;t.s=”computer”;return(0);main() t.x=1;t.s=”minicomputer”;func(t);printf(“%d, %s ”, t.x, t.s);A、10, computer B、1, computer

16、C、1, minicomputer D、10, minicomputer 第二卷说明:(1)第二卷均为填空题,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句以构成一个正确的 C 语言程序。(2)答本卷的题目时,要在本卷答题纸上编号对应的栏目中,用钢笔或圆珠笔书写。用铅笔答题无效,在试题上直接答题者无效。请勿在第一卷的答题卡上填写本卷答案。(3)每空栏 3 分,共 10 个空栏,共 30 分。试题一 下列程序是求 1+1/2+1/4+1/50 的值。#include “stdio.h”main( ) int i=2;float sum=1;while (_(1)_) sum=sum+

17、1.0/i;_(2)_;printf(“sum=%f”, sum);试题二 下列函数用于统计一行字符中的单词个数,单词之间用空格分隔。word_num(char str )int i, num=0, word=0;for(i=0; stri!=_(3)_; i+)if(_(4)_= )word=0;else if(word=0) word=1;_(5)_;return(num);试题三 以下函数的功能是删除字符串 s 中的所有数字字符。void dele (char *s) int n=0,i;for(i=0; si; i+)if(_(6)_)sn+=si;sn=_(7)_;试题四 以下程序的

18、功能是:从键盘输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。main( ) float x1000, sum = 0.0, ave, a ;int n=0, i;printf(“Enter mark:n”);scanf(“%f”,while(a=0.0 (26)以下程序的输出结果是( ) 。main()int a44=l,3,5 ,2,4,6 ,3,5,7;prinff(“%d%d%d%dn“,a03,a12,a21,a30) ; A)0650 B)1470 C)5430 D)输出值不确(27)以下程序的输出结果是( ) 。#include main

19、()char st20=“hello0t“;printf(“%d%dn“ ,stden (st ,sizeof(st) ) ; A)9 9 B)5 20 C)13 20 D)20 20(28)以下程序的输出结果是( ) 。amovep(int *p,int (*a)3 ,int n) int i,j;for(i=0;ix, (h1.p)-y) ; A)12 B)23 C)14 D)32(30)以下程序的输出结果是( ) 。main() int a,b;for(a=l,b=l ;a=10)break;if(b%3=1) b+=3;continue;printf(“%dn“ ,a) ; A)101

20、 B)6 C)5 D)4(31)以下程序的输出结果是 ( ) 。union myun struct int x,y,z ;u;int k;a;main() a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf(“%dn“ ,a.u.x) ; A)4 B)5 C)6 D)0(32)以下程序的输出结果是( ) 。int a,b;void fun() a=100;b=200 ;main() int a=5,b=7 ;fun() ;printf(“%d%dn“ ,a ,b ) ; A)100200 B)57 C)200100 D)75(33)以下程序的输出结果是 ( ) 。#def

21、ine M(x,y,z) x*y+zmain() int a=l,b=2,c=3;printf(“%dn“,M (a+b,b+c,c+a) ) ; A)19 B)17 C) 15 D)12(34)整型变量 X 和 Y 的值相等,且为非 0 值,则以下选项中,结果为 0 的表达式是( ) 。 A)x|y B)x|y C)xi+)z=z* 6 ;return z; (7)设有以下程序:main() int a,b,k=4 ,m=6,*pl=printf(“b=%dn“,b); 执行该程序后,a 的值为 7 ,b 的值为 8 。(8)若已定义 int a10,l ;,以下 fun 函数的功能是:在第

22、一个循环中给前 10 个数组元素依次赋 1,2,3,4, 5,6,7,8,9, 10;在第二个循环中使 a 数组前 10 个元素中的值对称折叠,变成 1, 2,3,4,5,5,4, 3,2, 1。请填空。fun(int a ) int i;for(i=l;i=10;i+) 9 =i;for(i=0;i5 ;i+) 10 =ai: (9)以下程序运行后的输出结果是 11 。main() char s =“9876“,*p;for(p=s;ps+2;p+)printf(“%sn“,p); (10)若有定义语句 char sl00,d100;int j=0,i=0;,且 s 中已赋字符串,请填空以实

23、现字符串拷贝。 (注意:不得使用逗号表达式。 )while(si) dj= l2 ;j+;dj=0; (11)以下程序段用于构成个简单的单向链表,请填空。struct STRU int x,y,float rate;13 p;a,b;a.x=0;a.y=0;a.rate=0;a.p=b.x=0;b.y=0;b.rate=0;b.p=NULL;(12)若有如下结构体说明:struct STRU int a,b;char c;double d;struct STRU pl,p2 ; ;请填空,以完成对 t 数组的定义, t 数组的每个元素为该结构体类型。14 t20;(13)以下程序段打开文件后,

24、先利用 fseek 函数将文件位置指针定位在文件末尾,然后调用 ftell 函数返回当前文件位置指针的具体位置,从而确定立件长度,请填空。FILE *myf;long fl;myf= 15 (“test.t“,“rb“);fseek(myf,0,SEEK_END);fl=ftell(myf) ;fclose(myf) ;printf(“%ldn“,f1);参考答案一、选择题1. C 2.A 3. A 4.C 5.B 6.D 7.D 8. D 9.B 10.A 11.B 12.D 13.B 14.B 15.C 16.B 17.A 18.A 19.A 20.C21.B 22.D 23.D 24. C 25.D 26.A 27.B 28.A 29.D 30.D31.D 32.B 33.D 34.D 35.A二、填空题1 时间复杂性 2 a4a3a2a1 3 数据和代码 4 实体完整性5 存储空间 6 x 70 8 7 9 ai-1 10 ai-9 11 9876 12 si+ 13 struct STRU * 14 struct STRU 15 fopen

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报