首页 > 自考本科 > 自考c语言程序设计真题

自考c语言程序设计真题

发布时间:

c语言程序设计自考真题

想自考就自学,上面总该有你会的吧,不会的问人!先学做人吧!太懒!

江苏成人计算机统考网提供计算机统考试题成人大专计算机试题。

2001年4月份全国高等教育自学考试计算机基础与程序设计试题及答案一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。1.I/O设备指的是计算机的()A、存储设备B、输入和输出设备C、控制器D、运算器2.具有只读功能的内存储器是指()A、ROMB、RAMC、硬盘D、CD-ROM3.C语言源程序的基本单位是()A、过程B、函数C、子程序D、语句4.字符串常数"CHINA"在内存中存储时占的字节数是()A、5个B、6个C、7个D、8个5.设有int p,q;以下不正确的语句是()A、p*=3B、p/=qC、p+=3D、p&&=q6.如果a=1,b=2,c=3,d=4,则表达式a>b?a:cA、1B、2C、3D、47.下面程序段的运行结果是( )main( ){Int a=11,b=10;a-=b+1;printf("%dn",a);}A、1B、0C、2D、58.下列程序段执行后输出结果为()int i=-1;if(i<=0)printf("****n");else printf("%%%%n");A、****CB、%%%%C、%%%%CD、****9.若所用变量已正确地定义,则下列程序段输出结果为()a=10;b=50;c=30;if(a>b)a=bb=c;c=aprintf("a=%d,b=%d,c=%dn",a,b,c);A、a=10,b=50,c=10B、a=10,b=30,c=10C、a=50,b=30,c=10D、a=50,b=3,c=5010.下述循环的循环次数是()int k=2;while(k=0)printf("%d",k);k--;printf("n")A、无限次B、0次C、1次D、2次11.在下列选项中,没有构成死循环的程序段是()A、int i=100;while(1){i=i0+1;if(i>100)break;}B、for(;;)C、int k=1000;do(++k;) while(k>=10000);D、int s=36;while(s);--s;12.若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是()int a[]={0,1,2,3,4,5,6,7,8,9},*p,i;p=aA、*(a+i)B、a[p-a]C、p+iD、*(&a[i])13.下面能正确将字符串"Boy"进行完整赋值操作的语句是()A、char s[3]={'B','o','y'};B、char s[ ]="Boy";C、char s[3]={"Boy"};D、char s[3];s[0]='B';s[1]='o';s[2]='y'14.以下程序段的输出结果是( )char arr[ ]="ABCD";char*ptr;for(ptr=arr;ptrprintf("%sn",ptr);A、ABCDB、AC、DD、ABCD B C BCD C B CD D A D15.下面说法不正确的是()A、一个源程序文件由一个或多个函数组成。B、一个C程序由一个或多个源程序文件组成。C、一个C程序以函数为独立的编译单位。D、一个C程序必须有一个main()函数。16.C语言的auto型变量是()A、存储在动态存储区中。B、存储在静态存储区中。C、存储在计算机CPU的寄存器中。D、存储在外存储器中。17.以下程序的运行结果是()void swapl(x,y)int x,y;{int t;t=x;x=y;y=t;}void swap2(p1,p2)int *p1,*p2;{*p1=*p2;*p2=*p1;}main(){int a=3,b=5,*x1=&a,*x2=&b;swap1(a,b);printf("a=%d,b=%dn",a,b);swap2(x1,x2);printf("a=%d,b=%dn",a,b);}A、a=5,b=3B、a=3,b=5C、a=5,b=3D、a=3,b=5 a=5,b=3 a=3,b=5 a=3,b=3 a=5,b=518.下列定义中,不是指针数组定义的是( )A、int *p[5];B、float *q[4];C、int (*r)[6];D、char *w[7];19.以下程序的运行结果是()#define sl(x)(3.14*(x)*(x))#includemain(){float x,s;s=s1(10);printf("%.2fn",s);}A、3.14B、31.40C、314.00D、6.2820.测试文件是否结束函数的函数名是()A、feofB、EOFC、eofD、FEOF二、多项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的五个选项中有二至五个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。多选、少选、错选均无分。21.下列哪些设备属外存储设备()A、RAMB、光盘C、硬盘D、软盘E、磁带22.?X*.C可以代表的文件是()A、AXCD.CB、AXCD.DC、ABX.CD、RX.CE、XX1234.C23.若有int x;float y;指出下面结果为整型数的表达式()A、(int)(x+y)B、(int)x+yC、'a'+xD、x+(int)yE、x*y24.若所用变量已正确定义,下列for循环语句中语法正确的有()A、for(x=0;i=0;i<=10;i++)x++;B、for(x=0,i=0,i<=10,i++)x++;C、for(x=0,i=0;i<=10;i++)x++;D、i=0;x=0;for(i<=10;i++)x++E、i=0;x=0;for(;i<=10;i++)x++25.若有定义及赋值:()int y,*p,*p1;p=&y;p1=p;*p1=4;则可以输出变量y的地址的语句是A、printf("%un",y);B、printf("%un",p);C、printf("%un",*p);D、printf("%un",&y);E、printf("%un",*p1);26.若有定义及赋值:()int a[10]={0,1,2,3,4,5,6,7,8,9},*p;p=a;则引用a中值为5的元素的表达式是A、a[5]B、a[4]C、*(a+5)D、p[5]E、*(p+4)27.若有定义及赋值:()int a[6][6],*p;p=*a;则下列各式中表示地址的表达式是A、a[1]B、a[1]+1C、a[3][3]D、&a[1][3]E、p[0][0]28.若有定义及赋值:()int x[5][6],*p;p=*x;则不能正确引用数组元素x[0][2]的值的表达式是A、x[0][2]B、p[0][2]C、x[0]+2D、*x+2E、*(*x+2)29.下面各式正确的是()A、struct 1_num{long num;struct 1_num*next;}num1,*p1;p1=&num1;B、struct animal{char name [30],float weight,}rabbits;C、struct star{int bh,char name [20],}my_star;my_star.name="moon";D、struct {char x[20];char y[30];int u;}x1,y;E、struct food{int code;char name [30];struct food *p;};struct food *tail;30.设有int y,u=0,x=15,下列各项中能使y值为0的是()A、y=x∧x;B、y=x∣u;C、y=x>>4;D、y=x&u;E、y=~u;第二部分非选择题三、填空题(本大题共10小题,每小题1分,共10分)31.写出查看A盘TC子目录下扩展名为C的所有文件的目录操作命令C:>____________。32.组成C程序的基本单位是____________。33.putchar()函数的功能是____________。34.当s=7时,执行以下程序段后x=____________。if((s>0)&&(s<=10))if((s>=3)&&(s<=6))x=2;else if((s>1)||(s>8))x=3;else x=1;else x=0;35.设i和x都是int型,则for循环语句最多执行次数为____________。for(i=0,x=0;I<=9&&x!=876;i++)scanf("%d",&x);36.以下程序的输出结果是____________。main(){int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;for(i=0;i<4;i++)p[i]=&a[i*3];printf("%dn",p[3][2]);}37.定义变量可以在函数内部,也可以在函数外部,在函数内部定义的变量称为____________。38.若有定义int x=3,*p;则使p指向变量x的赋值语句为____________。39.共用体的所有成员共享同一段存储空间,它的各个成员的数据类型可以是____________。40.设有FILE*fp;则关闭fp所联系文件的C语句是____________。四、简答题(本大题共4小题,第41、42每小题2分,第43、44每小题3分,共10分)41.简述在Turbo C 2.0集成开发环境下完成一个C程序的全过程。42.写出下列程序段所对应的数学式子。if(x!=0)if(x>0)y=1;else y=-1;else y=0;43.定义char *string="I am a boy";和定义char *string;string="I am a boy";等价吗?为什么?44.简述C对ASCII码文件或二进制文件的操作步骤。五、阅读分析题(本大题共10小题,每小题2分,共20分)45.阅读下列程序,写出运作结果main(){int a=100,b=-1;printf("a=%d,%xn",a,a);printf("b=%x,%un",b,b);}46.下面是判断一个学生考试成绩及格与否的程序(成绩A,或B,或C者为及格;成绩为D者不及格):main(){char mark=''A'';switch(mark){case''A'':case''B'':case''C'':printf(">=60n");case''D'':printf("<60n");default:printf("Errorn");}}该程序执行后会产生什么错误?请分析并予以更正。第47题,第48题,第49题请参阅下面程序,并回答相关问题main(){int u,v,a,b,t,r;u=24;v=16;if(u>v){t=u;u=v;v=t;}a=u;b=v;while((r=%ba)!=0){b=a;a=r;}printf("a=%dn",a);}47.程序的输出结果是多少?48.该程序完成什么功能?49.若将while循环替换为do-while循环,请写出相应的程序段。第50题,第51题,第52题请参阅下面程序,并回答相关问题。long fac(int n){if(n>0)return n*fac(n-1);else return 1L;}main( ){int i,m;long s=0;scanf("%d",&m);for(i=1;i<=m;i++)s=s+fac(i);;printf("%1dn",s);}50.该程序的功能是什么?fac函数是一个什么函数?51.若fac函数的返回值定义为int型,合适吗?52.如果求(1!)!+(2!)!+(3!)!+…+(m!)!,程序如何修改?第53题、第54题请参阅下面程序,并回答相关问题。struct food{int amount;struct food*next;}*head=NULL;void create(int each_amt){struct food * p;p=(struct food*)malloc(sizeof(struct food));p→amount=head_amt;p→next=head;head=p;}53.语句p=(struct food *)malloc(sizeof(struct food));和p→amount=each_amt;是功能是什么?54.语句p→next=head;head=p;的功能是什么?六、程序设计题(本大题共2小题,第55题8分,第56题12分,共20分)55.对任意一个3行3列的二维整型数组,编程实现:(1)从键盘对数组元素赋初值。(2)查找每一列中元素值最大的元素并输出其值及行下标和列下标。(假设数组中各元素值都不相同)56.编写字符串拷贝函数将指针str2指向的字符串复制到由指针str1所指的字符串中。请在主函数中调用字符串拷贝函数并输出str1指向的字符串。(不得用C中的strcpy标准库函数)计算机基础与程序设计试卷参考答案一、单项选择题(本大题共20小题,每小题1分,共20分)1.B2.A3.B4.B5.D6.C7.B8.D9.A10.B11.C12.C13.B14.D15.C16.A17.D18.C19.C20.A二、多项选择题(本大题共10小题,每小题2分,共20分)21.BCDE22.ADE23.ACD24.CE25.BD26.ACD27.ABD28.CD29.ADE30.ACD三、填空题(本大题共10小题,每小题1分,共10分)31.DIR A:TC*.C32.函数33.向终端输出一个字符34.335.10次36.1237.局部变量38.p=&x39.不相同的40.fclose(fp)四、简答题(本大题共4小题,第41、42题每题2分;第43、44题每题3分,共10分)41.[参考答案](1)利用编辑功能生成C源程序。(2)利用编译功能生成相应的目标程序。(3)利用连接功能生成可执行程序。(4)运行可执行程序。42. [参考答案]y=-1(x<0)y=0(x=0)y=1(x>0)43. [参考答案](1)等价。(1分)(2)因为string是字符型指针变量。(1分)(3)无论哪种赋值方式都只是将字符串的首地址赋给了string,而不是将整个字符串赋给了string。(1分)44[参考答案](1)按规定的格式打开文件。(1分)(2)对打开的文件进行读/写操作。(1分)(3)关闭已打开的文件。(1分)五、阅读分析题(本大题共10小题,每小题2分,共20分)45. [参考答案]a=100,64(1分)b=ffff,65535(1分)46. [参考答案](1)该程序有逻辑错误。当mark为''A''(或''B''或''C'')时,三条printf语句全部要执行一次。(1分)(2)要得到正确的结果,应做下面修改:(1分)case''C':printf(">=60n");break;case''D'':printf("<60n");break;47. [参考答案]a=8(2分)48. [参考答案]该程序用于求u和v的最大公约数。(2分)49. [参考答案]while语句可以改为:(2分)r=b%a;do{if(f= =0)break;b=a;a=r;}while((r=b%a)!=0);50. [参考答案]51. [参考答案]不合适。会产生整数溢出。即使定义为long型,输入的m值也不宜过大,否则仍会产生溢出。(2分)52. [参考答案]只要将s=s+fac(i)改为:s=s+fac(fac(i))即可。(2分)53. [参考答案](1)前一句用于创建一个新结点,并使指针P指向新结点。(1分)(2)后一句用于接受调用程序的实参,并将其值赋给新结点的成员amount。(1分)54. [参考答案](1)前一句用于将新结点与原head指向的结点串接在一起。(1分)(2)后一句用于使head指向新加入的结点P。(1分)六、程序设计题(本大题共2小题,第55题8分,第56题12分,共20分)55. [参考答案]参考程序如下:#includevoid main(void){int i,j,im,jm,x[3][3],max;for(i=0;j<3;i++)for(j=0;j<3;j++)scanf("%d",&x[i][j]);for(j=0;j<3;j++){max=x[0][j];im=0;jm=j;for(i=1;i<3;i++)if(max {max=x[i][j];im=i;jm=j;}printf("i=%d j=%d max=%dn",i,j,max);}}56. [参考答案]参考程序如下:#includevoid strcpy(char *,char * );void main(void){char *str1,*str2="abcdef";strcpy(str1,str2);printf("%s",str1);}void strcpy(char *s1,char *s2){int i=0;while((s1[i]=s2[i])!='''')i++;}

你可以到自考网里面去找。里面有

自考c语言程序设计真题

太多了,会愁死人的。分开几个帖子,就会有好多人帮你。

CABBDCCBBCBCA

江苏成人计算机统考网提供计算机统考试题成人大专计算机试题。

你可以到自考网里面去找。里面有

c语言程序设计自考

NCRE可以免考哪些自考课程

全国计算机等级考试(NCRE)成绩在自考系统中的使用:

根据全国考委办函[2004]148号文件规定:

1.NCRE课程暂与高等教育自学考试的部分专科课程进行衔接。

2.凡获得NCRE一级合格证书者,可以免考高等教育自学考试中的《计算机应用基础》(课程代码:00018)或《计算机应用技术》(课程代码:02316)课程(包括理论考试和上机考试两部分)。

3.凡获得NCRE二级C语言程序设计(笔试和上机)合格证书者,可以免考高等教育自学考试中的《高级语言程序设计(一)》(课程代码:00342)课程(包括理论考试和实践考核两部分)。

4.凡获得NCRE三级PC技术(笔试和上机)合格证书者,可以免考高等教育自学考试中的《微型计算机及其接口技术》(课程代码:02319)和《微型计算机原理及应用》(课程代码:02277)课程(包括理论考试和实践考核两部分)。

免费领取自考学习资料、知识地图:

NCRE可以免考哪些自考课程

全国计算机等级考试(NCRE)成绩在自考系统中的使用:

根据全国考委办函[2004]148号文件规定:

1.NCRE课程暂与高等教育自学考试的部分专科课程进行衔接。

2.凡获得NCRE一级合格证书者,可以免考高等教育自学考试中的《计算机应用基础》(课程代码:00018)或《计算机应用技术》(课程代码:02316)课程(包括理论考试和上机考试两部分)。

3.凡获得NCRE二级C语言程序设计(笔试和上机)合格证书者,可以免考高等教育自学考试中的《高级语言程序设计(一)》(课程代码:00342)课程(包括理论考试和实践考核两部分)。

4.凡获得NCRE三级PC技术(笔试和上机)合格证书者,可以免考高等教育自学考试中的《微型计算机及其接口技术》(课程代码:02319)和《微型计算机原理及应用》(课程代码:02277)课程(包括理论考试和实践考核两部分)。

免费领取自考学习资料、知识地图:

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。自考c程序设计课程对于没有基础的考生来说刚开始是有点难但是你要是入门了就简单了。一开始你可以先找些简单的例子看看,其中基本语法要多记,多动手勤练习。 自考c程序设计课程的学习方法 第一,兴趣最重要。一定要想办法培养自己对c语言的兴趣。 第二,基础知识一定要学好。反复的看一下c语言中最基本的知识,要求熟记于心。 第三,上机练习是关键。只看书本上的程序是不行的。虽然你可以看懂,但这只是肤浅的了解了。当你用到的时候就会发现脑子一片的空白。所有对于书本上的程序或是自己写出来的程序一定要上机练习一下。出现了问题要找出来,并总结自己的失误之处。 第四,不要太注重细枝末节,死扣知识。初学者要从大的方面着眼,从总体上了解c语言的知识。自考/成考有疑问、不知道如何总结自考/成考考点内容、不清楚自考/成考报名当地政策,点击底部咨询官网,免费领取复习资料:

一、填空题 1、C语言中基本的数据类型有:______、______ 、______ . 2、C语言中普通整型变量的类型说明符为______,在内存中占______字节,有符号普通整型的数据范围是______ . 3、整数-35在机内的补码表示为______. 4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是______. 5、有如下语句:char A[ ]={“I am a student”}; 该字符串的长度是______,A[3]=______. 6、符号“a”和‘a’的区别是______. 7、所谓“指针”就是______.“&”运算符的作用是______.“*”运算符的作用是______. 8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是______. 二、选择题 1、设整型变量a为5,使b不为2的表达式是( )。 A. b=a/2 B. b=6-(——a) C. b=a%2 D. b=a>3?2:1 2、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( )组成配对关系。 A. 缩排位置相同的if B. 在其之前未配对的if C. 在其之前未配对的最近的if D.同一行上的if 3、以下程序的输出结果是( )。 int x=10,y=10; printf(“%d %d\n”,x——,——y); A. 10 10 B. 9 9 C. 9 10 D. 10 9 4、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。 A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i 5、选出下列标识符中不是合法的标识符的是( )。 A. hot_do B. cat1 C. _pri D. 2ab 6、以下程序的输出结果是( )。 int a=5; float x=3.14; a*=x*(‘E’ - ‘A’); printf(“%f\n”,(float)a); A. 62.000000 B. 62.800000 C. 63.000000 D. 62 7、设有说明double(*p1)[N];其中标识符p1是( )。 A. N个指向double型变量的指针。 B. 指向N个double型变量的函数指针。 C. 一个指向由N个double型元素组成的一维数组的指针。 D.具有N个指针元素的一维指针数组,每个元素都只能指向double型量。 8、在C程序中有如下语句:char *func(int x,int y);它是( )。 A. 对函数func的定义。 B. 对函数func的调用。 C.对函数func的原型说明。 D. 不合法的。 9、以下程序的输出结果是( )。 char str[15]=“hello!”; printf(“%d\n”,strlen(str)); A. 15 B. 14 C. 7 D. 6 10、分析以下程序的输出结果是( )。 main() {int a=5,b=-1,c; c=adds(a,b); printf(“%d”,c); c=adds(a,b); printf(“%d\n”,c); } int adds(int x,int y) {static int m=0,n=3; n*=++m; m=n%x+y++; return(m); } A. 2,3 B. 2,2 C. 3,2 D. 2,4 11、下列描述中不正确的是( )。 A. 字符型数组中可能存放字符串。 B. 可以对字符型数组进行整体输入、输出。 C. 可以对整型数组进行整体输入、输出。 D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。 12、以下程序的输出结果是( )。 #define f(x) x*x main() {int a=6,b=2,c; c=f(a)/f(b); printf(“%d\n”,c); } A. 9 B. 6 C. 36 D. 18 13、设有如下定义: int x=10,y=3,z; 则语句printf(“%d\n”,z=(x%y,x/y)); 的输出结果是( )。 A. 1 B. 0 C. 4 D. 3 14、定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9}; 则语句for(i=0;i<3;i++) printf(“%d ”,x[i][2-i]); 的输出结果是( )。 A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9 15、以下对二维数组a进行正确初始化的是( ) A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[ ][3]={1,2,3,4,5,6}; C. int a[2][ ]={1,2,3,4,5,6}; D. int a[2][ ]={{1,2},{3,4}}; 16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。 int x; scanf(“%d”,&x); if(x++>5) printf(“%d”,x); else printf(“%d\n”,x - -); A. 7和5 B. 6和3 C. 7和4 D. 6和4 17、设有如下定义: char *aa[2]={“abcd”,“ABCD”}; 则以下说法中正确的是( )。 A)aa数组成元素的值分别是“abcd”和ABCD“ B)aa是指针变量,它指向含有两个数组元素的字符型一维数组 C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D)aa数组的两个元素中各自存放了字符‘a’和‘A’的地址 18、下列程序的输出结果是( )。 char *p1=“abcd”, *p2=“ABCD”, str[50]=“xyz”; strcpy(str+2,strcat(p1+2,p2+1)); printf(“%s”,str); A. xyabcAB B. abcABz C. ABabcz D. xycdBCD 19、下列程序的输出结果是( )。 int a[5]={2,4,6,8,10},*P,* *k; p=a; k=&p; printf(“%d”,*(p++)); printf(“%d\n”,* *k); A. 4 4 B. 2 2 C. 2 4 D. 4 6 20、不能把字符串:Hello!赋给数组b的语句是( )。 A. char b[10]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’}; B. char b[10]; b=“Hello!”; C. char b[10]; strcpy(b,“Hello!”); D. char b[10]=“Hello!”; 三、读程序题 1、float f=3.1415927; printf(“%f,%5.4f,%3.3f”,f,f,f); 则程序的输出结果是 . 2、int x=6, y=7; printf(“%d,”,x++); printf(“%d\n”,++y); 程序的输出结果是 . 3、a=3; a+=(a<1)?a:1; printf(“%d”,a); 结果是. 4、for (a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) {b+=3; continue;} b-=5; } 程序的输出结果a的值为 . 5、int y=1, x, *p, a[ ]={2,4,6,8,10}; p=&a[1]; for(x=0;x<3;x++) y + = * (p + x); printf(“%d\n”,y); 程序的输出结果y的值是 . 四、程序填空题 1、从键盘上输入10个数,求其平均值。 main() {int i; float f,sum; for(i=1,sum=0.0;i<11;i++) { ; ; } printf(“average=%f\n”,sum/10); } 2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。 #include main() { FILE *fp; char c; fp= ; do{ c=getchar(); fputs(c,fp); }while(c!=EOF); } 3、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出成绩和最低成绩,当输入负数时结束输入。请填空。 main() { float x,amax,amin; scanf(“%f”,&x); amax=x; amin=x; while( ) { if(x>amax) amax=x; if( ) amin=x; scanf(“%f”,&x); } printf(“\namax=%f\namin=%f\n”,amax,amin); } 五、编程题 1. 三个整数a、b、c,由键盘输入,输出其中的一个数。 2.输出1900~2000年中所有的闰年。每输出3个年号换一行。(判断闰年的条件为下面二者之一:能被4整除,但不能被100整除。或者能被400整除。) 3.请编一个函数int fun(int a),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0.A的值由主函数从键盘读入。 4.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩的学生信息,包括学号、性别、姓名和平均成绩。

自考c语言程序设计

1L的回答挺好的 第四个选B1、B 2、C 3 、 D 4、 B 5 、 C 6、 B7 、 1 8 、 4 9 、1 -2 10、 0 11、5 12、**3 13、0

先学C吧 C++是面向对象 C是面向过程 说容易点 C++就是 讲怎么类等等其他 封装C的技术 估计说深点你 不太能理解 C学好啦 C++也容易点 如果觉得 能力不错 那就直接学C++ 不过我建议还是C开始好ACCELERATED C++中文版 这个入门不错 好像是C++标准 核心人员之一写的 不知道记错没C++PRIMER 这个稍微有点基础的看比较好 第一本书好一点吧 我也没看过 看目录的 别人也说很不错

我也是上自考的,不过学的是C语言。个人认为如果有编程基础,还是比较容易的。C++中最明显的就是函数不太一样。。

链接:

C语言程序设计:

c程序设计自考真题

11D;14A;15D;16D;17C;18B;19D;20C;23:0;24p=&a[8];2511;29无返回值;30rb+;31s=532101013320,40,30,6034Lilei402000.00000035:141516(此踢要注意空格每个数字前面都有两个空格的)39#includemain(){inti,j;for(i=9;i>=1;i=i-2){for(j=0;jmain(){intyear,i,j;printf("Inputtheyear:");scanf("%d",&year);i=year%4;j=year%400;if(i==0&&j!=0)printf("yes!");else("No!");}41#includevoidchange(double*a,double*b);main(){doublex,y;printf("Inputxandy:");scanf("%d%d",&x,&y);change(&x,&y);printf("%d%d",x,y);}voidchange(double*a,double*b){doubletemp;temp=*a;*a=*b;*b=temp;}上面的都是自己作的,或许有不对的地方还请指教要是有什么不懂的可以给我留言~~再有就是关于23题,我是按10<3+1这个表达式做的我觉的你可能是写错了要是按你写的我在电脑上面试了一下输出的是160~~~呵呵

c语言程序设计试题

阐述编程语言的概念,学习进制转换以及程序的基本运行原理,让大家先有一个整体上的认识。下面是我整理的关于c语言程序设计基础知识,希望大家认真阅读!

【程序1】

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去

掉不满足条件的排列。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

int i,j,k;

printf("\n");

for(i=1;i<5;i++) /*以下为三重循环*/

for(j=1;j<5;j++)

for (k=1;k<5;k++)

{

if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/

printf("%d,%d,%d\n",i,j,k);

}

getch();

}

【程序2】

题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高

于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提

成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于

40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于

100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

long int i;

int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

scanf("%ld",&i);

bonus1=100000*0. 1;

bonus2=bonus1+100000*0.75;

bonus4=bonus2+200000*0.5;

bonus6=bonus4+200000*0.3;

bonus10=bonus6+400000*0.15;

if(i<=100000)

bonus=i*0.1;

else if(i<=200000)

bonus=bonus1+(i-100000)*0.075;

else if(i<=400000)

bonus=bonus2+(i-200000)*0.05;

else if(i<=600000)

bonus=bonus4+(i-400000)*0.03;

else if(i<=1000000)

bonus=bonus6+(i-600000)*0.015;

else

bonus=bonus10+(i-1000000)*0.01;

printf("bonus=%d",bonus);

getch();

}

【程序3】

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后

的结果满足如下条件,即是结果。请看具体分析:

2.程序源代码:

代码如下:

#include "math.h"

#include "stdio.h"

#include "conio.h"

main()

{

long int i,x,y,z;

for (i=1;i<100000;i++)

{

x=sqrt(i+100); /*x为加上100后开方后的结果*/

y=sqrt(i+268); /*y为再加上168后开方后的结果*/

if(x*x==i+100&&y*y==i+268) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/

printf("\n%ld\n",i);

}

getch();

}

【程序4】

题目:输入某年某月某日,判断这一天是这一年的第几天?

1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的.第几天,特殊

情况,闰年且输入月份大于3时需考虑多加一天。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

int day,month,year,sum,leap;

printf("\nplease input year,month,day\n");

scanf("%d,%d,%d",&year,&month,&day);

switch(month) /*先计算某月以前月份的总天数*/

{

case 1:sum=0;break;

case 2:sum=31;break;

case 3:sum=59;break;

case 4:sum=90;break;

case 5:sum=120;break;

case 6:sum=151;break;

case 7:sum=181;break;

case 8:sum=212;break;

case 9:sum=243;break;

case 10:sum=273;break;

case 11:sum=304;break;

case 12:sum=334;break;

default:printf("data error");break;

}

sum=sum+day; /*再加上某天的天数*/

if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/

leap=1;

else

leap=0;

if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/

sum++;

printf("It is the %dth day.",sum);

getch();

}

【程序5】

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,

然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

int x,y,z,t;

scanf("%d%d%d",&x,&y,&z);

if (x>y)

{t=x;x=y;y=t;} /*交换x,y的值*/

if(x>z)

{t=z;z=x;x=t;} /*交换x,z的值*/

if(y>z)

{t=y;y=z;z=t;} /*交换z,y的值*/

printf("small to big: %d %d %d\n",x,y,z);

getch();

}

【程序6】

题目:用*号输出字母C的图案。

1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

printf("Hello C-world!\n");

printf(" ****\n");

printf(" *\n");

printf(" * \n");

printf(" ****\n");

getch();

}

【程序7】

题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!

1.程序分析:字符共有256个。不同字符,图形不一样。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

char a=176,b=219;

printf("%c%c%c%c%c\n",b,a,a,a,b);

printf("%c%c%c%c%c\n",a,b,a,b,a);

printf("%c%c%c%c%c\n",a,a,b,a,a);

printf("%c%c%c%c%c\n",a,b,a,b,a);

printf("%c%c%c%c%c\n",b,a,a,a,b);

getch();

}

【程序8】

题目:输出9*9口诀。

1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

int i,j,result;

printf("\n");

for (i=1;i<10;i++)

{

for(j=1;j<10;j++)

{

result=i*j;

printf("%d*%d=%-3d",i,j,result); /*-3d表示左对齐,占3位*/

}

printf("\n"); /*每一行后换行*/

}

getch();

}

【程序9】

题目:要求输出国际象棋棋盘。

1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。

2.程序源代码:

代码如下:

#include "stdio.h"

#include "conio.h"

main()

{

int i,j;

for(i=0;i<8;i++)

{

for(j=0;j<8;j++)

if((i+j)%2==0)

printf("%c%c",219,219);

else

printf(" ");

printf("\n");

}

getch();

}

11 D ;14 A; 15 D; 16 D; 17 C; 18 B; 19 D; 20 C;23:0 ;24 p=&a[8]; 25 11; 29 无返回值 ;30 rb+;31 s=532 1010133 20,40,30,6034 Lilei 40 2000.00000035: 14 15 16(此踢要注意空格 每个数字前面都有 两个空格的)39#includemain(){ int i,j; for(i=9;i>=1;i=i-2) { for(j=0;jmain(){ int year,i,j; printf("Input the year: "); scanf("%d",&year); i=year%4;j=year%400;if(i==0 && j!=0) printf("yes!");else("No!");}41#includevoid change(double *a,double *b);main(){ double x,y;printf("Input x and y: ");scanf("%d %d",&x,&y);change(&x,&y);printf("%d %d",x,y);}void change(double *a,double *b){ double temp; temp=*a; *a=*b; *b=temp;}上面的都是自己作的,或许有不对的地方 还请指教 要是有什么不懂的可以给我留言~~再有就是关于23题,我是按10<3+1这个表达式做的 我觉的你可能是写错了 要是按你写的 我在电脑上面试了一下 输出的是160~~~呵呵

  • 索引序列
  • c语言程序设计自考真题
  • 自考c语言程序设计真题
  • c语言程序设计自考
  • 自考c语言程序设计
  • c程序设计自考真题
  • 返回顶部