湖南省历界对口高考C语言真题答案
- 格式:doc
- 大小:166.50 KB
- 文档页数:38
对口c语言高考测试题及答案1. 以下哪个选项是C语言中的合法变量名?A. 2variableB. variable-nameC. variable_nameD. variable!name答案:C2. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. defineD. int答案:D3. 以下哪个选项是C语言中正确的注释方式?A. // This is a commentB. /* This is a comment */C. //* This is a commentD. /* This is a comment */答案:A4. 在C语言中,用于定义一个整型数组的语法是什么?A. int array[10];B. int [10] array;C. int array = 10;D. int array[10] = {0};答案:A5. C语言中,哪个运算符用于计算两个整数的和?A. +B. -C. *D. /答案:A6. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str = "Hello";C. char str[] = 'Hello';D. char str[] = {"Hello"};答案:A7. C语言中,以下哪个选项是正确的条件语句?A. if (x > y)B. if x > yC. if (x > y)D. if x > y答案:A8. 在C语言中,以下哪个选项是正确的循环结构?A. for (int i = 0; i < 10; i++)B. for (int i = 0; i < 10; i++)C. while (i < 10)D. do-while (i < 10)答案:A9. C语言中,以下哪个函数用于计算数组的长度?A. sizeofB. lengthC. sizeD. count答案:A10. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. openfileC. fileopenD. file答案:A11. C语言中,以下哪个选项是正确的结构体定义方式?A. struct Student {int id;char name[50];};B. struct Student = {int id;char name[50];};C. struct Student {int id;char name;};D. struct Student = {int id;char name[50];};答案:A12. 在C语言中,以下哪个选项是正确的指针声明方式?A. int *ptr;B. int ptr*;C. int *ptr = 0;D. int ptr = 0;答案:A13. C语言中,以下哪个选项是正确的递归函数调用?A. void factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}B. void factorial(int n) {if (n == 0) return 1;else return n * factorial(n);}C. void factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}D. void factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}答案:A14. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI 3.14159D. #define PI = 3.14159答案:A15. C语言中,以下哪个选项是正确的枚举定义方式?A. enum Color {RED, GREEN, BLUE};B. enum Color {RED, GREEN, BLUE} color;C. enum Color {RED, GREEN, BLUE};D. enum Color {RED, GREEN, BLUE} color;答案:A。
2015年湖南省对口高考计算机C语言试题一、单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,本大题共3小题,每小题5分,共15分)2015年20.在C语言中,下列叙述正确的是A.空字符串不占用内存,其内存空间大小是0B.可以用关系运算符比较字符串的大小C.连续两个双引号是合法的字符串常量D.连续两个单引号是合法的字符常量答案:C"" 保存在文字常量区char*p="";p的值指向文件常量区的地址而*p的值为0 因为c的字符串都是以0结尾没有""内容但还是有0的字符常量是用单引号括起来的一个字符。
2015年21.若有语句:int x=12,y=8,z;z=0.8+x/y;执行语句后z的值为A.1.8B.1C.2D.2.42015年22.若有语句:int a,b;scanf("%d;%d",&a,&b);如果把整数4赋给a,把整数5赋给b,应该输入A.4 5B.4,5 C.45 D. 4;5三、综合应用题(每小题20分,每空5分,共20分)2015年30.输入一行文字,找出其中大写字母、小写字母、空格、数字及其它字符各有多少。
main(){char str[40],*p,sl=0,s2=0,s3=0,s4=0,s5=0;gets(str);p=str;while(*p){if(_①*p>=’A’&&*p<=’Z’) sl++;else if(②*p>=’a’&&*p<=’z’) s2++;else if(③*p>=’0’&&*p<=’9’) s3++;else if(④ *p=‘’) s4++;else s5++;p++;}printf(“大写字母:%d 小写字母:%d 数字:%d 空格:%d 其它:%d\n”,s1,s2,s3,s4,s5);}四、程序分析题(本大题共3小题,共75分)2015年32.阅读程序,写出运行结果(每空5分,共25分)(1)下列程序的运行结果是① 63main(){ int i=0,a=0;while(i<30){ for(;;)if(i%10==0) break;else i--;i+=11;a+=i;}printf("%d",a);}(2)下列程序的运行结果是② 14main(){ int a[3][3]={{0,1},{2,3},{4,5}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}(3)下列程序的运行结果是③ 1024#include <stdlib.h>int fun(){ static int x=1;x*=2;return x;}main(){ int i,s=1;for(i=1;i<=4;i++) s*=fun();printf("%d",s);}(4)下列程序的运行结果是④ knahTmain(){ char *p;int i;p=(char*)malloc(sizeof(char)*20);strcpy(p," Thank ");for(i=6;i>=0;i--)putchar(*(p+i));free(p);}(5)下列程序的运行结果是⑤ 012345main(){ FILE *fp;int x[6]={0,1,2,3,4,5},i;fp=fopen("test.dat","wb");fwrite(x,sizeof(int),3,fp);rewind(fp);fread(x,sizeof(int),3,fp);for(i=0; i<6; i++)printf("%d",x[i]);fclose(fp);}2015年33.程序填空。
历界高考C语言真题2007年真题一、程序分析题1、#include <stdio.h>main( ){ int x=3;doprintf(“%d”,x-=2);while(!(--x));}2、#include <stdio.h>main( ){ int x=4,y=8,z;z=x<<2|y;printf(“%d”,z);}3、#include <stdio.h>main( ){ char x=’E’,y=’e’;printf(“%c”,x+32);printf(“%c”,(x--,y++));printf(“%c\n”,x==y?x+=32:(y-=32));}4、#include <stdio.h>main( ){ int t=2;while(t<5)switch(t%2){ case 0: t++;printf(“#”);break;case 1: t+=2;printf(“*”);default:printf(“\n”);}}5、#include <stdio.h>main( ){ char str1[50]=”Beijing 2008”,*q=str1;char str2[50]=”One world One Dream!”,*p=str2;while(*p!=’\0’) p++;while(*q!=’\0’) *p++=*q++;*p=’\0’;printf(“%s”,str2);}#include<string.h> main( ){ char s[]=”abcdefg ”,t; int i=0,j=strlen(s)-1; while(i<j){ t=s[i],s[i]=s[j],a[j]=t;i++,j--;} puts(s); }二、程序填空题1、下面程序的功能是求1000以内的完数。
2014年下期永州工贸分校对口升学计算机综合C语言试题总分190分一、填空题(每题4分,共120分)1.有以下程序# define f(x) (x*x)main(){ int i1, i2;i1=f(8)/f(4) ; i2=f(4+4)/f(2+2) ;printf("%d, %d\n",i1,i2); }程序运行后的输出结果是()。
A 64, 28B 4, 4C 4, 3D 64, 642.若有运算符<<,sizeof,^,&=则他们按优先级由高到低的正确排列次序是____.A、sizeof,&=,<<,^B、sizeof,<<,^,&=C、^,<<,sizeof,&=D、<<,^,&=,sizeof3.sizeof(float)是()A、一种函数调用B、一个不合法的表示形式C、一个整型表达式D、一个浮点表达式4.以下叙述中不正确的是()A、表达式a&=b等价于a=a&bB、表达式a|=b等价于a=a|bC、表达式a!=b等价于a=a!bD、表达式a^=b等价于a=a^b 5.若x=2,y=3,则x&y的结果是__()A、0B、2C、3D、56.在位运算中,操作数每左移一位,则结果相当于()A、操作数乘以2B、操作数除以2C、操作数除以4D、操作数乘以47.系统的标准数入文件是指()A、键盘B、显示器C、软盘D、硬盘8.若执行fopen函数时发生错误,则函数的返回值是()A、地址值B、0C、1D、EOF9.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是()A、"ab+"B、"wb+"C、"rb+"D、"ab"10.fscanf函数的正确调用形式是__()A、fscanf(fp,格式字符串,输出表列)B、fscanf(格式字符串,输出表列,fp);C、fscanf(格式字符串,文件指针,输出表列);D、fscanf(文件指针,格式字符串,输入表列);11.fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是____.A、只写B、追加C、读或读写D、答案b和c都正确12.函数调用语句:fseek(fp,-20L,2);的含义是()A、将文件位置指针移到距离文件头20个字节处B、将文件位置指针从当前位置向后移动20个字节C、将文件位置指针从文件末尾处后退20个字节D、将文件位置指针移到离当前位置20个字节处13.利用fseek函数可实现的操作_()A、fseek(文件类型指针,起始点,位移量);B、fseek(fp,位移量,起始点);C、fseek(位移量,起始点,fp);D、fseek(起始点,位移量,文件类型指针);14.在执行fopen函数时,ferror函数的初值是()A、TUREB、-1C、1D、015、若有宏定义如下:#define X 5#define Y X+1#define Z Y*X/2则执行printf("%d\n",Z);语句后,输出结果是( )。
教程
1、一个用C语言编写的程序中,有下面几个变量:int a,b,c,测试表达式a+b*c的值是多少()
A、a+b
B、b*c
C、a+b*c
D、a*b+c
答案:C、a+b*c
2、以下关于java中定义对象的说法中,正确的是()
A、使用new关键字定义对象
B、使用this关键字定义对象
C、使用void关键字定义对象
D、使用static关键字定义对象
答案:A、使用new关键字定义对象
3、函数f(x)=ax^3+bx^2+c的最小值是()
A、-a
B、-b
C、-c
D、-a-b-c
答案:D、-a-b-c
4、在C语言中,下列哪个语句不能用于程序调试?()
A、puts
B、printf
C、scanf
D、malloc
答案:D、malloc
5、下列哪个特性不属于面向对象的编程?()
A、封装
B、数据结构
C、继承
D、编译
答案:B、数据结构
6、关于列表类型的描述,正确的是()
A、列表的索引从零开始
B、列表可以存储任意数据类型
C、列表只能存储字符串数据类型
D、列表的索引从一开始
答案:A、列表的索引从零开始
7、下列叙述错误的是()
A、TCP/IP是一种常用的网络协议
B、HTTP是网页上的图片
C、HTTPS是安全版本的HTTP协议
D、UDP是一种非连接型的网络协议
答案:B、HTTP是网页上的图片
8、关于MySQL数据库的说法,正确的是()
A、MySQL支持多种数据类型
B、MySQL支持跨平台
C、MySQL是基于文本的数据库。
2016年湖南省对口高考计算机C语言试题一、单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,本大题共3小题,每小题5分,共15分)2016年20.在C语言中,函数值类型在定义时可以缺省,缺省时函数值的隐含类型是()A. voidB. intC. floatD. double2016年21.用scanf函数输入一个字符串到数组str中,以下选项中正确的语句是()A. scanf("%s",&str);B. scanf("%c",&str[10]);C. scanf("%s",str[10]);D. scanf("%s",str);2016年22.设有定义语句:int m[ ]={2,4,6,8},*k=m;以下选项中表达式的值为6的是()A. *(k+2)B. k+2C. *k+2D. *k+=2三、综合应用题(每小题20分,每空5分,共20分)2016年30.以下程序的功能是:从键盘输入班级学生的成绩,计算学生成缋的平均分,并输出高于平均分的学生成绩,输入负数表示输入结束,班级人数不超过100人。
int main(){float x[ 100],sum=0.0,ave,s;int n=0,i;printf("Enter mark:\n");scanf("%f",&s);while(s>=0.0 &&n<100){sum=① sum+s ;x[n]= s;② n++ ;scanf("%f",&s);}ave=sum/n;printf("Output:\n");printf("ave=%f\n",ave);for(i=0; ___③ i<n_ : i++)if(④x[i]>ave___)printf("%f\n",x[i]); return 0;}四、程序分析题(本大题共3小题,共75分)2016年32.阅读程序,写出运行结果(每空5分,共25分) (1)下列程序的运行结果是___①_s1=student!S2=student!___#include <stdio.h>void f(char *from,char *to){while((*to++=*from++)!='\0');}int main( ){char s1 [80]=" teacher!";char s2[80]=" student!";f(s2,s1);printf("s1 =%s\n",s1);printf("s2=%s\n",s2);return 0;}(2)下列程序的运行结果是② x=0,y=0x=0,y=0#include <stdio.h>void f(int x){static int y=0; x=0;printf("x=%d,y=%d\n",x,y);}int main( ){int i;for(i=0;i<2;i++)f(i);return 0;}(3)下列程序的运行结果是___③_p=543__#include <stdio.h>int p(int n){int s=0;while(n){s=s* 10+n%10;n=n/10;}return s;}int main( ){printf("p=%d\n",p(345));return 0;}(4)下列程序的运行结果是___④ _42__#include <stdio.h> Array int main( ){int i,x=0,t=1;char s[10]="101010";for(i=strlen(s)-1;i>=0;i--,t<<=1)if(s[i]!='0')x+=t;printf("x=%d\n",x);return 0;}(5)下列程序的运行结果是⑤ eabcd#include <stdio.h> Array void f(char *p){char max, *q; int i=0;max=p[i];while(p[i]!='\0'){if(max<p[i]){max=p[i];q=p+i;}i++;}while(q>p){*q=*(q-1 ); q--;}p[0]=max;}int main( ){char str[80] = "abcde";f(str); puts(str);printf("\n");return 0;}2016年33.程序填空。
2018年湖南省对口高考计算机C语言试题一、单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,本大题共3小题,每小题5分,共15分)2018年20.若“int a=12;”,执行“a/=a+8;”后,a的值是A.1B.8C.9D.02018年21.若“int a=5,b;”,执行“b=a>>2;”后,b的值是A.10B.20C.1D.22018年22.若“char a[6]="abcde";”,执行“printf("%d",strlen(a));”后,输出的结果是A.5B.6C.7D.e三、综合应用题(每小题20分,每空5分,共20分)2018年30.入夏标志着春夏季节完成转换,气候学上入夏的标准是必须要连续5天日平均气温达到22℃或以上,则这连续5天中的第一天为入夏日。
函数fun的功能是判断5月份是否入夏并输出有关信息,若入夏就返回是哪天,否则返回-1。
请补全下列代码。
#include<stdio.h>int fun(int a[],int n){ /*a存放某月的每日气温值,n存放的是此月的天数*/int i,c=0;for(i=0;i<n;i++){if(① a[i]>=22 ){c++;if(c>=5)② return i+1-c ;或者return i-4else③ continue ;}④ c=0 ;}return -1;}int main(){int t[31]={20,21,22,22,19,18,18,19,22,23,22,21,20,21,24,22,25,24,23,21,23,22,21,22,25,26,30,28,27,28}int d;d=fun(t,31);if(d==-1)printf(“Not in summer\n”)elseprintf(“5-%d in summer\n”,d+1);return 0;}四、程序分析题(本大题共3小题,共75分)2018年32.阅读程序,写出运行结果(每空5分,共25分)(1)下列程序的运行结果是① gcd=7#include <stdio.h>int main(){int a=14,b=35,c;if(a<b){c=a;a=b;b=c; }c=a%b;while(c!=0){a=b;b=c;c=a%b;}printf("gcd=%d\n",b);return 0;}(2)下列方程的运行结果是②#include <stdio.h>int main(){int a[20],i,m=10,k=8;for(i=0;m>0;i++){a[i]=m%k;}for(i--;i>=0;i--)printf("%d\n", a[i]);return 0;}(3)下列程序的运行结果是③result=2018#include<stdio.h>int main(){char str[50]="welcome2018";int i,n=0;for(i=0;str[i]!='\0';i++)if('0'<=str[i]&& str[i]<='9')n=n*10+str[i]-'0';printf("result=%d\n",n);return 0;}(4)下列程序的运行结果是④ 120#include<stdio.h>int f(n){if(n==1||n==0)return 1;return(n*f(n-1));} Array int main(){printf("%d",f(5));return 0;}(5)下列程序的运行结果是⑤ 5 6 7 8 9 1 2 3 4#include<stdio.h>void fun(int *w,int m,int n){int i,j,t;for(i=m;i<n;i++){t=w[n-1];for(j=n-2;j>=0;j--)w[j+1]=w[j];w[0]=t;}}int main(){int i,a[9]={1,2,3,4,5,6,7,8,9};fun(a,4,9);for(i=0;i<9;i++)printf("%4d",a[i]);return 0;}2018年33.程序填空,按照题目要求,将正内容填入各题卡相应位置,使程序完整。
2012年湖南省对口高考计算机C语言试题一、单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,本大题共3小题,每小题5分,共15分)2012年20.以下正确的C语言自定义标识符是A.int B.a.3 C._7c D.5d_2012年21.已知i=3,执行j=i++后,i和j的值分别为A.i=4 -2 B.i=4 j=3 C.i=3 j=3 D.i=3 j=22012年22.C语言中,以下语句能跳过循环体中未执行的语句,接着执行本循环下一次迭代的语句是A.空语句B.break语句C.return语句D.continue语句二、基本操作题(每空3分,共12分)2012年28.C语言中,文件操作fopen函数的原型为FILE * fopen(char *filename,char *mode),用于打开一个指定文件,若成功则返回一个与之关联的流,否则返回①NULL(或0);代码片段FILE * fp=fopen("C:\\test.dat","a")的含义是以②追加的方式打开路径"C:\\test.dat"对应的文件,当访问的文件是二进制文件时,还需要在字符串“a”后增加一个字符③b ,以上代码片段对应的关闭文件的C语言代码是④fclose(fp); 。
三、综合应用题(每小题20分,每空5分,共20分)2012年31.30人参观博物馆共花50美元,其中成年男子门票为3美元/人,成年女子2美元/人,小孩1美元/人。
编程输出成年男子、成年女子和小孩人数的所有组合。
题目分析如下:设x,y,z分别代表成年男子、成年女子和小孩人数。
按题目要求,可得下面方程:x+y+z=30 (1)3x+2y+z=50 (2)用程序求此不定方程的非负整数解,可先通过(2)-(1)式得:2x+y=20 (3)由(3)式可知,x变化范围是①0-10根据以上分析编写程序如下:#include<stdio.h>main(){int x,y,z;/*x,y,z分别代表成年男子、成年女子、小孩人数*/printf("Men Women Chlidren\n");for(x=0;②x<=10 ;x++){___③y=20-2*x___________;/*按照(3)式根据x求y*/___④_z=30-x-y______ ___;/*由(1)式求得z*/if(3*x+2*y+z==50) /*当前得到的一组解是否满足式(2)*/printf("%d %d %d\n",x,y,z);}}四、程序分析题(本大题共3小题,共75分)2012年33.阅读程序,写出运行结果(每空5分,共25分)(1) #include<stdio.h>main(){int a=3,b=4;a%=b+=a+=(a+b);printf("%d,%d",a,b);}运行结果是____10,14__(2) #include<stdio.h>main(){int x=2,y=7,z=5;switch(x>2){case 1:switch(y>0){case 1:printf("1");break;case 2:printf("2");break;}case 0:switch(z==5){case 0:printf("3");break;case 1:printf("4");break;default:printf("5");break;}default:printf("6");}}运行结果是__46____(3) #include<stdio.h>main(){int a=8,y=0;do{a+=2:y+=a;if(y>30)break;}while(a=10);printf("a=%d y=%d\n",a,y);}运行结果是_a=12 y=34_____(4) #include<stdio.h>func(int a,int b){return a=a+b,a%b;}main(){int x=9,y=7,z=3,rels;rels=func(func(x,y),z);printf("%d\n",l<<rels);}运行结果是_ 4_____(5) #include<stdio.h>main(){char ch[2][5]={"1981","0921"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=1;j<=3;j+=2)s=10*s+p[i][j]-'0';printf("%d",s);}运行结果是_ 9191_____2012年34.程序填空。
历界高考C语言真题2007年真题一、程序分析题1、#include <stdio.h>main( ){ int x=3;doprintf(“%d”,x-=2);while(!(--x));}2、#include <stdio.h>main( ){ int x=4,y=8,z;z=x<<2|y;printf(“%d”,z);}3、#include <stdio.h>main( ){ char x=’E’,y=’e’;printf(“%c”,x+32);printf(“%c”,(x--,y++));printf(“%c\n”,x==y?x+=32:(y-=32));}4、#include <stdio.h>main( ){ int t=2;while(t<5)switch(t%2){ case 0: t++;printf(“#”);break;case 1: t+=2;printf(“*”);default:printf(“\n”);}}5、#include <stdio.h>main( ){ char str1[50]=”Beijing 2008”,*q=str1;char str2[50]=”One world One Dream!”,*p=str2;while(*p!=’\0’) p++;while(*q!=’\0’) *p++=*q++;printf(“%s”,str2);}6 #include <stdio.h>#include<string.h>main( ) Array { char s[]=”abcdefg”,t;int i=0,j=strlen(s)-1;while(i<j){ t=s[i],s[i]=s[j],a[j]=t;i++,j--;}puts(s);}二、程序填空题1、下面程序的功能是求1000以的完数。
完数是指一个数的子因子之和等于这个数本身。
#include<stdio.h>main( ){ int i,j,sum;for(i=1; i<1000 ;i++){ sum=0;for(j=1;j<i;j++)if(i%j==0)sum+=j;if( sum==i ) printf(“%d\n”,i);}}2、以下程序是统计一维数组arr 中小于平均值的元素个数。
#include<stdio.h> #define N 7 int fun(int s[],float aver) { int i,count=0;for(i=0;i<N;i++) if( s[i]<aver ) count++; return count;}main( ){ int i,arr[N]={87,34,5,78,90,66,88}; float aver=0; for(i=0;i<N;i++) aver+=arr[i]; aver=aver/N;printf(“统计结果为:%d ”, fun(arr,aver ); }三、程序改错题,不得增行或删行。
1、下面的程序是求∑=m1!n n,在函数fun()中存在两处错误,请标记并改正。
#include<stdio.h>long fun(int x) { int m,n,t;long sum; long sum=1; for(m=1;m<=x;m++){ t=1;for(n=1;n<=m;n++)t=m*n; t*=n; sum+=t; }return sum;}main( ){ int num;scanf(“%d”,&num);printf(“sum=%ld\n”,fun(num));}2、以下程序的功能是:从字符串str中,删除所有字母c,不区分大小写。
如输入字符串”abcCdefcfCg”,删除后的字符串为”abdefg”。
程序有两错误,请标记并改正。
#include<stdio.h>main( ){ char str[81];int i=0,j=0;gets(str);while(str[i]!=’\0’){ if(str[i]!=’c’||str[i]!=’C’) { if(str[i]!=’c’&&str[i]!=’C’)str[j]=str[i]; str[j++]=str[i];i++;}str[j]=’\0’;printf(“%s”,str);}3、以下程序从一个二进制文件中读出结构体数据,并将结构体数据输出在屏幕上。
程序中有三处错误,请标记并改正。
#include<stdio.h>struct student{ char name[10];float score;}stu;main( ){ file *f; { FILE *f;if((f=fopen(“a.dat”,”r”))==NULL){ printf(“cannot open outfile\n”);exit(0);}while(feof(f)) while(!feof(f)){ fread(stu,sizeof(struct student),1,f); { fread(&stu,sizeof(struct student),1,f);printf(“%s,%.2f\n”,,stu.score);}fclose(f);}四、程序设计题1、已知一个数列从1项开始的前6项为:0,0,1,1,2,4,以后的各项都是其相邻的前3项之和,计算并输出该数列前20项之和。
2、写一函数sort(int x[ ],int n)实现选择法排序(从小到大)。
2008年真题一、程序分析题1、#include <stdio.h>main( ){ char a=55;a=~a&055;printf(“%x,%o”,a,a);}2、#include <stdio.h>#define test(x,y) x+ymain( ){ float c;c=2*test(3.2,5.4)/2;printf(“6.1f”,c);}3、#include <stdio.h>void fun(){ int x=1;static int y=1;printf(“%d%d ”,++x,y++); }main( ) { int i;for(i=0;i<2;i++) fun( ); }4、#include <stdio.h> main( ){ int a=12,b=0,n=0;do{ b+=2;a-=2+b; n++;} while(a>=0);printf(“%d ”,n); }5、#include <stdio.h> main( ){ int n=132,i=1,j,k,b[10];while(n!=0) { j=n%6; b[i]=j; n=n/6; i++; }for(k=i-1;k>0;k--)printf(“%d ”,b[k]); }二、程序填空题1、任意输入平面一点坐标(x,y),求该点到原点(0,0)的距离。
#include <stdio.h> #include <math.h> #include <malloc.h> typedef struct NODE { float x;float y; }NODE; main( ) { NODE *p;p= (NODE *)malloc(sizeof(NODE)) ;scanf(“%f,%f ”,&p->x,&p->y);printf(“%5.1f”,sqrt(p->x*p->x+p->y*p->y));free(p) ;}2、下列给定程序中,函数fun( )的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。
#include <stdio.h>#include <string.h>#define N 4#define M 50char *fun(char (*q)[M]){ int i;char *p;p=*q ;for(i=0;i<N;i++)if(strlen(p)< strlen(*(q+i)) )p=*(q+i) ;return p;}main( ){ char str[N][M]={“pingpong”,”basketball”,field hockey”,”softball”};char * longest; int i;longest=fun(str);printf(“The longest string:\n”);puts(longest);}3、下列程序定义了3×3的二维数组,并在主函数中自动赋值;函数fun的功能是使二维数组的上三角元素的值全部置0。
调用函数前调用函数后1 2 3 1 0 02 4 6 2 4 03 6 9 3 6 9#include <stdio.h>void fun(int n,int a[ ][3]);main( ){ int a[3][3],i,j;for(i=1;i<=3;i++)for(j=1;j<=3;j++)a[i-1][j-1] =i*j;fun(3,a);printf(“the result:\n”);for(i=0;i<3;i++){ for(j=0;j<3;j++) printf(“%4d ”,a[i][j]); printf(“\n ”); } }void fun(int n,int a[3][3]) { int i,j;for(i=0;i<n-1;i++)for(j=i+1; j<n ;j++) a[i][j]=0; }三、程序改错题,不得增行或删行。
1、下列程序的功能是求分数序列:⋯⋯8131321-21343455-5589,,,,的前8项之和。
程序中有2处错误,请标记并改正。
#include <stdio.h> main( ) { int i,flag=1;float a=144,b=89,s=0,t; for(i=1;i<=8;i++){ s+=a/b; { s+=flag*b/(a-b); flag=-flag;t=b;a=a-b;a=t; t=b;b=a-b;a=t; } printf(“%5.1f ”,s);}2、下列程序的功能是采用简单插入的排序方法,随机产生10个整数,按从小到大的顺序排列。