江苏省高等学校非计算机专业学生.doc_第1页
江苏省高等学校非计算机专业学生.doc_第2页
江苏省高等学校非计算机专业学生.doc_第3页
江苏省高等学校非计算机专业学生.doc_第4页
江苏省高等学校非计算机专业学生.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

第二部分 C语言程序设计一、选择题(用答题卡答题,答案依次填在2130答题号内)21以下选项中,不能正确赋值的是A。(A)char s110; s1=Ctest; (B)char s2=C, t, e, s, t; (C)char s320=Ctest; (D)char *s4=Ctestn 22以下程序的输出结果是A。amovep(int *p, int a33,int n) int i, j;for(i=0;in;i+)for(j=0;jn;j+) *p=aij;p+; main() int *p,a33=10,30,50,20,40,60; p=(int *)malloc(100); amovep(p,a,3); printf(%d %d n,p2,p5);free(p); (A)50 60(B)20 50(C)30 40(D)程序错误23下列程序段的输出结果是C。void fun(int *x, int *y) printf(%d %d, *x, *y); *x=3; *y=4;main() int x=1,y=2;fun(&y,&x);printf(%d %d,x, y);(A)1 2 3 4(B)1 2 1 2(C)2 1 4 3(D)2 1 1 224下列程序的输出结果是D。main() char a10=9,8,7,6,5,0,1,2,3,4,*p=a+5;printf(%d,*-p);(A)a4的地址(B)非法(C)3(D) 525设有以下说明语句struct st int x ; float y; char z ; stu;则下面的叙述中不正确的是D。(A)x,y,z都是结构体成员名(B)struct st是结构体类型(C)struct结构体类型的关键字(D)stu是结构体类型名26以下程序的输出结果是C。long fun( int n) long s;if(n=1 | n= =2) s=2;else s=n+fun(n-1);return s;main() printf(%ldn, fun(3); (A)1 (B)3 (C)5 (D)627已知A盘根目录下的一个文本数据文件datadat中存储了10个int型数据,若需要修改该文件中已经存在的若干个数据的值,只能调用一次fopen函数,已有声明语句 FILE *fp;,则fopen函数的正确调用形式是A。(A)fp=fopen(a:data.dar,r+); (B)fp=fopen(a:data.dat,w+);(C)fp=fopen(a:data.dar,a+); (D)fp=fopen(a:data.dat,w);28在以下程序中,需要在fun函数中声明一个int型的变量,以下选项中D不能用作该变量的名字。#include int y; main() int a=1; fun(a) int fun(int x) int ;*int型变量声明语句位置* *若干执行语句*)。(A)x (B)y (C)fabs (D)fun29设有定义如下:typedef structint x,y; POINT;typedef enumRED,YELLOW,BLUE,GREEN COLOR;structPOINT xy;COLOR c; pixel, *p&pixel;以下对变量pixel的赋值操作中正确的是B。(A)pixel1,2,BLUE;(B)p-xyx=10;p-xyy=20;p-c=BLUE;(C)scanf(%d%d%d,p-xy.x,p-xyy,&pixelc);(D)scan(%d%d,&pixelxy);pixelcolor=2;30执行了以下程序段后x,w的值为D。 int x0,y=2,z=3,w; if (x+) w=x; else if(x+&y=1) w=y; else if(x+&z1) wz;(A)0,1 (B)1,2 (C)3,2 (D)2,2 二、填空题(请将答案填写在答题纸的相应答题号内,每个答案:只占一行)l 基本概念题,共5分1在C语言中,如果不对函数作类型说明,则函数的隐含类型为外部函数。2在程序中需要调用库函数abs时必须包含头文件。3用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*) malloc(11);4当调用函数时,实参是一个数组名,则向函数传送的是实参数组的首地址。5将字符串常量“New Year”存储于内存中时,占用9个字节。l 阅读程序段写出运行结果题(共10分)6以下程序的输出结果是36。void fun(int *a, int *b) int *k;k=a; a=b; b=k;main() int a=3, b=6, *x=&a, *y=&b;fun(x,y);printf(%d %d, a, b);7以下程序的输出结果是57。int a, b; void fun() a=100; b=200; main() int a=5, b=7; fun(); printf(%d %d n, a,b); 8以下程序的输出结果是70。#define MAX(x,y) (x)(y)?(x):(y)main() int a=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf(“%dn”,t);9以下程序的输出结果是369。void fun() static int a=0;a+=3; printf(“%d ”,a);main() int c;for(c=1;c4;c+) fun();printf(“n”);10以下程序运行时输出第一行为15,45第二行为10,145。 程序 int m=10,n=5,a10=10,15,20; void f1(void); void f2(int m); main() int i; for(i=0;i7;i+)f1(); f2(1);printf(n%d,%d,am,an); void f1(void) static int n=3; an=an-1+an-2+an-3; n+; void f2(int m) for(;m3;m+=2) int m; for(m=1;m4;m+) printf(%d,am+); 11以下程序运行后输出第一行为1,4,7.10.22,第二行为1,3,9,27,40。 程序 extern int m1,m2; void fun(int n,int *p1,int *p2) int i; *p1=1;*p2=1; for(i=1;i=n;i+)*p1+=3;*p2*=3; m1+=*p1; m2+=*p2; int m1,m2; main() int i,k14,k24; for(i=0;i4;i+)fun(i,&k1i,&k2i); for(i=0;i4;i+)printf(%d,k1i); printf(%dn,m1); for(i=0;i4;i+)printf(%d,k2i); printf(%d,m2); 12程序main ( ) int a33,i,j; numlist (&a00, 9); for (i= 0 ;i3 ;i+) for(j= 0;j3 ;j+)printf(%d,aij); printf(n); numlist(int * p,int n) int i; for(i=0;in;i+ ) pi=num(i); num(int n) if(n=0)return 1; return num(n-1) +1; 程序执行时输出的第一行是1,2,3第二行是4,5,6。l 完善程序题(共15分)13以下程序用来输出结构体变量stu所占存储单元的字节数,请填空。struct st char name20; double score; ;main() struct st stu;printf(stu size: %dn,sizeof(struct st);14以下程序中函数code完成一个字符串的解密功能,将密文sl字符串中的字符经过变换后保存到s2指向的字符数组中。二维数组mi保存了一个明码密码对照表,第一行是明码字符,第二行是对应的密码字符。解密方法:从密文s1字符串中每取一个字符,均在mi表第二行中查找有无该字符,若找到则将对应的第一行明文中的字符放入s2中,否则将s1中原来的字符放入s2中。程序#include#includechar mi210=abcdefjhi,123456789;void code(char *s1,char *s2) int n,i,j;for(n=0;s1n!=0;n+) for(i=0; i10&s1n!= mi1i; i+);if(inext=NULL)。#include struct listint data; struct list *next;struct list * creatlist()struct list *p,*q,*temp;int a;temp=(struct list *)malloc(sizeof(struct list);p=q=temp;printf(输入一列整数,以0结束:n);scanf(%d,&a);while (a0)p=(struct list *)malloc(sizeof(struct list);p-data=a; q-next=p;q=p;scanf(%d,&a);p-next=NULL;return(temp);main()struct list *head,*p;head=creatlist();p=head;printf(n);while(p-next!=NULL) p=p-next; printf(%5d-,p-data);printf(n);17完整以下程序,该程序功能为:(1)读入5个字符串(每串不多于9个字符),依次存放在a数组中,指针数组str中的每个元素依次指向每个字符串的开始位置;(2)从这些字符串中选出最大的那个串输出。#include#includemain() char a100,*str5,*sp;int i,k;sp=a;for(i=0;i5;i+)scanf(%s,sp);stri=sp;k= strlen(sp);sp+=k+1;for(i=0;i0)k=i;printf(%sn,strk);18程序功能:在一行文本中查找给定的单词,输出其位置和出现的次数。一行文本由字母和分隔符组成,分隔符包括若干空格、逗号、句号和换行符。一个单词由若干个连续字母组成。程序说明:main函数中word数组存放欲查找的单词。find函数完成在t字符串中查找s指向的字母字符串的功能,找到后输出所在字串中的位置,函数返回s串在t串中出现的次数。#include#include#includeint find(char *,char *);main() char source80=I will pass the examination in the summer holiday.,word20;int t;puts(enter a word to be found: );gets(word);t= find(source,word);if ( t0)printf(Find word %s in text. It appears %d times n,word,t);else printf(not find );int find(char *t,char *s) char w20;int i,j,k=0;for(i=0; ti!= 0; i+) if(isalpha(ti) for (j=0; isalpha(ti+j);j+)wj= ti+j;wj=0;puts(w);if( strcmp(s,w)=0) k+;printf(Find word %s in text. It locate in text%dn,s,i);i=i+j;return k ;第二部分 C语言程序设计一、选择题(用答题卡答题,答案依次填在2130答题号内)21当需要定义一个函数时,以下标识符中B不能用作函数名。(A)max (B)while (C)_sum (D)F222已有声明语句char ch;与表达式ch=C的值不相同的表达式是D。(字符A的ASCII码以十进制表示为65)(A)ch0x43 (B)ch=0103 (C)ch=103 (D)ch06723若要对a进行+运算,则a应具有以下说明C。(A)int a54; (B)char *a12,ab;(C)int b8,*a=b;(D)char (*a)(char);24若有声明语句int x10,y8,z=6,*p&x;则下列的C表达式语句是正确的。(A)(*p)+=z;(B)*(*p)+;(C)printf(x%40? %3dn:%3d,*p);(D)x20 ? return *p-20:return *p-1;25设int x=2,y3,z(+xy-)?(-y1)?y-:-y):y-;则x,y,z的值为B。 (A)3,1,1 (B)3,0,1 (C)2,0,0 (D)2,2,126设有函数f的定义如下,若在main函数中欲调用f函数,则正确的调用语句是C。void f(int x,int *y) *yx*x*x; main() int i,c4l,2,3,4,s4=0; for(i0;iy);(A)1 (B)13 (C)2 (D)3二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)l 基本概念题,共5分1将一维数组x的第i个元素的地址赋给指针变量p的语句是_ p=&xi 。2表示“整数x的绝对值大于0小于100”时值为“真”的C语言表达式是 abs(x)0&abs(x)100。3若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量c中的值是 5 。c=(a-=(b-5);c=(a%2)+(b=5);4指针变量的值是 地址值 。5若有定义:int k=0;执行语句while(k+=7);后k的值为 8 。l 阅读程序写出运行结果题(共10分)6设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 38 。struct stud char num10;int s10;double f; a;7程序 int x=10; main() int y,k; y=f(3);printf(%dn%d,x,y); int f(int x) if(x= =3) int x=20; return x; else return x; 该程序运行后,输出x的值是 10 ,y的值是 20 。8以下程序输出的最后一个值是 24 。 int fun(int n) static int f=1;f=f*n;return f;main() int i;for(i=1;i5;i+) printf(%dn,fun(i); 9设有以下程序: main() int a, b, k=2, m=3, *p1=&k, *p2=&m;a=p1=&m;b=(*p1)%(*p2)*2;printf(a=%dn,a);printf(b=%dn,b); 执行该程序后,a的值为 0 ,b的值为 4 。10执行下面的程序,共输出 3 行,最后一行有 4 个数。void prnt(int n, int aa ) int i;for(i=0; i=n;i+) printf(%6d, aai);if( !(i%5) ) printf(n);printf(n);main() int a10=1,2,3,4,5,6,7,8,9,0;prnt(9,a);11程序 #include int convert(char s1 ,char s2 ,int * n1) int i=0,j=0,k,s=0,len; int value=0; char tab16 =0l23456789ABCDEF; len=strlen (s1); if(len%4) for(i=0; ilen%4; i+) s=s*2+s1i-0; s2j+=tabs; value=value*16+s; while(ilen) s=0; for(k=0;k=1),请填空。 double fun( double x, int y) int i; double z; for(i=1, z=x; iy;i+) z= z* x ; return z; 13以下程序中的功能是调用colmin函数,实现在N行M列的矩阵中,找出每一列上的最小值。#define N 3#define M 4void colmin(int xNM) int i,j,p;for(j=0; jM;j+) p=0 ;for(i=1; i xij) p=i;printf(The min value in column %d is No.%dn, j+1,p+1);main() int aNM=1,4,7,11,0,7,9,8,2,3,1,10; Colmin(a) ;14以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。Strcen(char a, char b) int num=0,n=0;while(*(a+num)!= 0 ) num+;while(bn)*(a+num)=bn; num+; n+ ;anum=0;return(num);15下面程序把从终端读入的文本(用作为文本结束标志)输出到一个名为data.dat的新文件中。请填空。#include stdio.hFILE *fp; char ch;if( (fp=fopen (data.dat,w ) )= = NULL)exit(0);while( (ch=getchar( ) !=) fputc (ch,fp);fclose(fp);16程序功能:合并两个已经按照升序排列的一维数组。insert函数功能:将m插入x指向的含有n个元素的数组中,数组中n个元素已按升序排列,插人m后的n+1个元素仍保持有序。void insert(int x ,int n,int m); main() int a10=1,3,5,7,9,b5=2,4,8,16,32, k; for(k=0;k5;k+) insert(a, 5+k ,bk); for(k=0;kxn-1) xn =m; else for(i=0; m xi;i+); for (j=n;j=i;j-) xj= xj-1 ; xi=m; 17已知某链表中结点的数据结构定义如下: #include struct node int x; struct node *next; ;函数loop功能:根据m的值循环移位head指向的链表中的所有结点,当m为正数时实现循环左移一次,否则循环右移一次。函数返回链表首结点的指针。算法提示:循环右移时,将链表最后一个结点删除,再将其插入到链表首部;循环左移时,将链表第一个结点删除,再将其连接到链表尾部。struct node *loop(struct node

温馨提示

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

评论

0/150

提交评论