计算机程序设计(C语言).doc_第1页
计算机程序设计(C语言).doc_第2页
计算机程序设计(C语言).doc_第3页
计算机程序设计(C语言).doc_第4页
计算机程序设计(C语言).doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

全国信息技术水平考试 辅导资料全国信息技术水平考试计算机程序设计(C语言)辅导资料 第一部分 试题第一题 单项选择题(在每小题列出的几个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。)1、在C语言中,如果下面的变量都是int类型,则输出的结果是( )。sum=pad=5; pad=sum + + ,pad + + , + + pad;printf(%dn,paD、;A、7 B、6 C、5 D、42、以下程序的输出结果是( )。# include main() int i=010 , j = 10;printf(%d,%dn,+ +i , j - -); A、11,10 B、9,10 C、010,9 D、10,93、已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是( )。# include main() char c1=A, c2=Y;printf(%d,%dn,c1,c2); A、因输出格式不合法,输出错误信息 B、65,90 C、A,Y D、65,894、指针s所指字符串的长度为( )。char *s=NameAddressn;A、19 B、15 C、18 D、说明不合法5、设有说明int(*ptr)m;其中的标识符ptr是( )。A、M个指向整型变量的指针B、指向M个整型变量的函数指针C、一个指向具有M个整型元素的一维数组的指针D、具有M个指针元素的一维指针数组,每个元素都只能指向整型量6、语句while(!E);中的条件!E等价于( )。A、E = = 0 B、E!=1 C、E!=0 D、E7、以下程序的输出结果是( )。# include main() printf(%dn,NULL); A、不确定的(因变量无定义) B、0 C、-1 D、18、以下函数调用语句中含有的实参个数为( )。func(exp1,exp2),(exp3,exp4,exp5);A、1 B、2 C、4 D、59、设有以下语句:char a=3,b=6,c;c=ab2;则c的二进制值是( )。A、00011011 B、00010100 C、00011100 D、0001100010、下面的程序中第几行有错误(每行程序前面的数字是行号)( )。1 #include 2 main()3 4 float a3=0,0;5 int i;6 for(i=0;i3;i + + ) scanf(%d,&ai);7 for(i=1;i3;i + + ) a0=a0+ai;8 printf(%fn,a0);9 A、没有 B、第4行 C、第6行 D、第8行11、设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是( )。A、3 B、0 C、9 D、-1212、以下的for循环( )。for(x=0,y=0; (y!=123)&(x4); x + + );A、是无限循环 B、循环次数不定 C、执行4次 D、执行3次13、设有语句char a=72;则变量a( )。A、包含1个字符 B、包含2个字符 C、包含3个字符 D、说明不合法14、以下程序的输出结果是# include # include main() int a=1,b=4,c=2;float x=10.5 , y=4.0 , z;z=(a+B、/c+sqrt(double)y)*1.2/c+x;printf(%fn,z); A、14.000000 B、015.400000 C、13.700000 D、14.90000015、sizeof(double)是( )。A、一种函数调用 B、一个双精度型表达式C、一个整型表达式 D、一个不合法的表达式16、C语言中( )。A、不能使用do-while语句构成的循环B、do-while语句构成的循环必须用break语句才能退出C、do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D、do-while语句构成的循环,当while语句中的表达式值为零时结束循环17、以下程序的输出结果是( )。# include # include main() char str12=s,t,r,i,n,g;printf(%dn,strlen(str); A、6 B、7 C、11 D、1218、以下程序的输出结果是( )。# include main() int a=2,c=5;printf(a=%d,b=%dn,a,C、; A、a=%2,b=%5 B、a=2,b=5 C、a=%d,b=%d D、a=%d,b=%d19、以下程序的输出结果是( )。# includemain() int a ,b,d=241;a=d/100%9;b=(-1)&(-1);printf(%d,%dn,a,B、; A、6,1 B、2,1 C、6,0 D、2,020、以下程序的输出结果是( )。# include main() int i; for ( i=1;i=5;i + + ) if ( i%2 ) printf(*);else continue; printf(#);printf($n); A、*#*#*#$ B、#*#*#*$ C、*#*#$ D、#*#*$21、以下for语句构成的循环执行了多少次( )。# include # define N 2# define M N+1# define NUM (M+1)*M/2main() int i , n=0;for ( i=1;i=NUM;i + + );n + + ; printf(%d,n); printf(n); A、5 B、6 C、8 D、922、设有以下语句,则不是对a数组元素的正确引用的选项是(其中0i10)int a10=0,1,2,3,4,5,6,7,8,9, *p=a;A、ap-a B、*(&ai) C、pi D、*(*(a+i)23、有以下程序:( )。# include # define N 6main() char cN; int i=0;for ( ;iN ; ci=getchar () , i + + );for ( i=0 ; iN ; putchar(ci) , i + + ); 输入以下三行,每行输入都是在第一列上 开始,代表一个回车符:abcdef程序的输出结果是A、abcdef B、a C、a D、a b b b c cd cdef d e f24、以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空( )。# include findmax ( s , t , k )int *s , t , *k; int p; for(p=0,*k=p;p s*k )_; main() int a10 , i , k ;for ( i=0 ; i10 ; i + + ) scanf(%d,&ai);findmax ( a,10,&k );printf ( %d,%dn , k , ak ); A、k=p B、*k=p-s C、k=p-s D、*k=p25、有以下程序:( )。#includeunion pw int i; char ch2; a;main() a.ch0=13; a.ch1=0; printf(%dn,a.i); 程序的输出结果是(注意: ch0在低字节,ch1在高字节。)A、13 B、14 C、208 D、20926、有以下程序:( )。# includemain() int c;while(c=getchar()!=n) switch(c-2) case 0:case 1: putchar(c+4);case 2: putchar(c+4);break;case 3: putchar(c+3);case 4: putchar(c+2);break; printf(n); 从第一列开始输入以下数据,代表一个回车符。2743程序的输出结果是A、668977 B、668966 C、6677877 D、668876627、以下程序的输出结果为( )。main() char *alpha6=ABCD,IJKL,MNOP,QRST,UVWX;char *p; int i;p=alpha;for(i=0;i4;i + + ) printf(%s,pi); printf(n); A、ABCDEFGHIJKL B、ABCD C、ABCDEFGHIJKLMNOP D、AEIM28、以下程序的输出结果是( )。# include# define FUDGE(y) 2.84+y# define PR(A) printf(%d,(int)(A)# define PRINT1(A) PR(A);putchar(n)main()int x=2; PRINT1(FUDGE(5)*x); A、11 B、12 C、13 D、1529、以下程序的输出结果是( )。# includemain() int i=1,j=3;printf(%d,i + + ); int i=0; i+=j*2; printf(%d,%d,i,j); printf(%d,%dn,i,j); A、1,6,3,1,3 B、1,6,3,2,3 C、1,6,3,6,3 D、1,7,3,2,330、以下程序的输出结果是( )。# include main() int k=4,m=1,p;p=func(k,m); printf(%d,p); p=func(k,m); printf(%dn,p);func(a,B)int a,b; static int m=0,i=2;i+=m+1; m=i+a+b; return(m); A、8,17 B、8,16 C、8,20 D、8,831、设有以下语句:char str412=aaa,bbbb,ccccc,dddddd,*strp4;int i; for(i=0;i4;i + + )strpi=stri;不是对字符串的正确引用的选项是(其中0kn B、p-n + + C、(*p).n + + D、+ + p-n35、以下四个程序中,哪一个不能对两个整型变量的值进行交换( )。A、# include B、# include main() main() int a=10,b=20; swap(&a,&B); int a=10,b=20;printf(%d %dn,a,B); swap(&a,&B); swap(p,q) swap(p,q)int *p,*q; int p,q; int *t; int *t;t=(int )malloc(sizeof(int); t=*p;*p=*q;*q=t;t=p;*p=*q;*q=*t; C、# include D、# includemain() main() int *a,*b; int a=10,b=20;*a=10,*b=20; int x=&a,y=&b;swap(a,B); swap(x,y);printf(%d %dn,*a,*B); printf(%d %dn,a,B、; swap(p,q) swap(p,q)int *p,*q; int *p,*q;int t; int t;t=*p;*p=*q;*q=t; t=*p;*p=*q;*q=t; 第二题 填空题1、以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。#include main(argc,argv)int argc; char *argv; FILE *f1,*f2; char ch;if(argc 【1】 ) printf(Parameters missing!n); exit(0); if( (f1=fopen(argv1,r) = = NULL)|(f2=fopen(argv2,w) = = NULL) printf(Can not open file!n); exit(0);while( 【2】 )fputc(fgetc(f1),f2);fclose(f1); fclose(f2); 2、以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。#include main() int i,a10,*p=a,sum=0;printf(Enter 10 num:n);for(i=0;i10;i + + ) scanf(%d,&ai);for(i=0;i10;i + + )if(isprime(*(p+ 【3】 ) = = 1) printf(%d,*(a+i); sum+=*(a+i); printf(nThe sum=%dn,sum); isprime(x)int x; int i; for(i=2;i=x/2;i + + )if(x%i = = 0) return (0); 【4】 ; 3、以下程序调用invert函数按逆序重新放置a数组中元素的值。a数组中的值在main函数中读入。#include #define N 10invert(s,i,j)int *s,i,j; int t; if(ij) t=*(s+i); *(s+j)=(s+j);*(s+j)=t; invert(s, 【5】 ,j-1);main() int aN,i;for(i=0;iN;i + + ) scanf(%d,a+ 【6】 );invert(a,0,N-1); for(i=0;inext = = NULL).#includestruct list int data;struct list *next;【7】 creatlist() struct list *p,*q,*ph; int a;ph=(struct list *) malloc(sizeof(struct list);p=q=ph; printf(Input an integer number,enter -1 to end:n);scanf(%d,&A):while(a!=-1) p=(struct list *)malloc(sizeof(struct list);p-data=a; q-next=p; 【8】 =p; scanf(%d,&A); p-next=0; return(ph); main() struct list *head; head=creatlist();参考答案第一题 单选题1-5 CBDBC 6-10 ABBAC 11-15 DCACC 16-20 DADBA 21-25 CDCDA 26-30 ACBBA31-35 ACADC 第二题 填空题:【1】3 【2】!feof(f1)或feof(f1)=0 【3】I 【4】return 1 或 return (1)【5】i+1 【6】 I 【7】 struct list * 【8】 q第二部分 程序题1、题目:打印出如下图案(菱形) *程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。程序源代码:main() int i,j,k;for(i=0;i=3;i+)for(j=0;j=2-i;j+)printf( );for(k=0;k=2*i;k+)printf(*);printf(n);for(i=0;i=2;i+)for(j=0;j=i;j+)printf( );for(k=0;k=4-2*i;k+)printf(*);printf(n);2、题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。程序源代码:/* zheng int is divided yinshu*/main()int n,i;printf(nplease input a number:n);scanf(%d,&n);printf(%d=,n);for(i=2;i=a&c=A&c=0&c=9)digit+;elseothers+;printf(all in all:char=%d space=%d digit=%d others=%dn,letters,space,digit,others);4、题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=123.编程找出1000以内的所有完数。程序分析:请参照14程序源代码:main()static int k10;int i,j,n,s;for(j=2;j1000;j+)n=-1;s=j;for(i=1;ij;i+)if(j%i)=0)n+;s=s-i;kn=i;if(s=0)printf(%d is a wanshu,j);for(i=0;i=a&stri=z)stri=stri-32;fputc(stri,fp);i+;fclose(fp);fp=fopen(test,r);fgets(str,strlen(str)+1,fp);printf(%sn,str);fclose(fp);6、题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。程序源代码:main()int a,i,aa4,t;scanf(%d,&a);aa0=a%10;aa1=a%100/10;aa2=a%1000/100;aa3=a/1000;for(i=0;i=3;i+)aai+=5;aai%=10;for(i=0;i=0;i-)printf(%d,aai);7、题目:两个字符串连接程序程序源代码:#include stdio.hmain()char a=acegikm;char b=bdfhjlnpq;char c80,*p;int i=0,j=0,k=0;while(ai!=0&bj!=0)if (aibj) ck=ai;i+;Elseck=bj+;k+;ck=0;if(ai=0)p=b+j;elsep=a+i;strcat(c,p);puts(c);8、题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?程序源代码:main()int i,m,j,k,count;for(i=4;i10000;i+=4) count=0;m=i;for(k=0;k1)break;if(n%2=0)printf(Even=);sum=dcall(peven,n);Elseprintf(Odd=);sum=dcall(podd,n);printf(%f,sum);float peven(int n)float s;int i;s=1;for(i=2;i=n;i+=2)s+=1/(float)i;return(s);float podd(n)int n;float s;int i;s=0;for(i=1;i=n;i+=2)s+=1/(float)i;return(s);float dcall(fp,n)float (*fp)();int n;float s;s=(*fp)(n);return(s);10、题目:打印出杨辉三角形(要求打印出10行如下图)程序分析:11 11 2 11 3 3 11 4 6 4 11 5 10105 1程序源代码:main()int i,j;int a1010;printf(n);for(i=0;i10;i+)ai0=1;aii=1;for(i=2;i10;i+)for(j=1;ji;j+)aij=ai-1j-1+ai-1j;for(i=0;i10;i+)for(j=0;j=i;j+)printf(%5d,aij);printf(n);11、题目:画椭圆ellipse程序源代码:#include stdio.h#include graphics.h#include conio.hmain()int x=360,y=160,driver=VGA,mode=VGAHI;int num=20,i;int top,bottom;initgraph(&driver,&mode,);top=y-30;bottom=y-30;for(i=0;inum;i+)ellipse(250,250,0,360,top,bottom);top-=5;bottom+=5;getch();12、题目:画图,学用circle画圆形。程序源代码:/*circle*/#include graphics.hmain()int driver,mode,i;float j=1,k=1;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,);setbkcolor(YELLOW);for(i=0;i=25;i+)setcolor(8);circle(310,250,k);k=k+j;j=j+0.3;13、题目:利用递归方法求5!。程序分析:递归公式:fn=fn_1*4!程序源代码:#include stdio.hmain

温馨提示

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

评论

0/150

提交评论