1、i,intj)t;if(it=ai;ai=aj;aj=t;fun(a,+i,-j);a=1,2,3,4,5,6,i;fun(a,0,5);for(i=0;i6;i+)%d,ai);执行后的输出结果是65432151在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是地址传递单向值传递由实参传给形参,再由形参传回实参传递方式由用户指定52以下函数值的类型是fun(floatxy;y=3*x-4;不确定53设有以下函数:fa)b=0;staticc=3;b+;c+;return(a+b+c);如果在下面的程序中调用该函数,则输出结果是a2,i;%dn,f(a);91354以下程序的输
2、出结果是a,b;fun()a=100;b=200;a=5,b=7;fun();%ddn,a,b);100200572001007555以下所列的各函数首部中,正确的是play(var:Integer,varb:Integer)play(inta,b)a,intb)Subplay(aasinteger,binteger)56以下叙述中正确的是全局变量的作用域一定比局部变量的作用域范围大静态(static)类别变量的生存期贯穿于整个程序的运行期间函数的形参都属于全局变量未在定义语句中赋初值的auto变量和static变量的初值都是随机值若调用一个函数,且此函数中没有return语句,则正确的说法是
3、:该函数没有返回值返回若干个系统默认值能返回一个用户所希望的值返回一个不确定的值58f()i=0;s=1;s+=i;i+;s;i,a=0;5;a+=f();,a);2024251559若有以下程序#includef(intn);f(5);n),n);则以下叙述中不正确的是若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明函数f无返回值,所以可用void将其类型定义为无值型60以下程序调用findmax函数返回数组中的最大值findmax(int
4、*p,*s;for(p=a,s=a;p-as*p*sapasp-ap-s61在C语言中,形参的缺省存储类是autoregisterextern62不合法的main函数命令行参数表示形式是main(inta,char*c)arc,char*arv)argc,char*argv)argv,char*argc)63C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是double64x,inty)return(y-x)*x;a=3,b=4,c=5,d;d=f(f(3,4),f(3,5);,d);执行后输出的结果是_。65以下函数用来求出两整数之和,并通过形参将结果传回,请填空。func(inty
5、,_z)*z=x+y;66设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部_。要求形参名为b。s1022;fun(s);67以下程序的输出结果是_。a=0;a+=2;cc;for(cc=1;cc0)fun(x/2);,x);fun(6);70以下程序运行后的输出结果是x=x+y;y=x-y;x=x-y;printf(%d,%d,x,y);x=2,y=3;fun(x,y);printf(%d,%dn,x,y);a,point,*&*a,&a,*point*&point,*point,&a,&*point,point标志是输入函数SCANF中的求地址运算符,
6、所输出的结果是&所指向的地址值;*是指针变量的说明符,说明该变量只能存放所定义类型变量的地址。本题中D选项中的第一和第三项所表达的是同样的意思,应为正确答案。若有说明:*p,m=5,n;以下正确的程序段是Dp=&scanf(,&p);,*p)*p=n;*p=m;&标志是输入函数SCANF中的求地址运算符,所输出的结果是&所指向的地址值;*是指针变量的说明符,说明该变量只能存放所定义类型变量的地址。本题中D选项中p=&n表示取n的地址值,*p=m表示指针变量的地址值为m变量的值,应视为正确答案。有如下程序段*p,a=10,b=1;a;a=*p+b;执行该程序段后,a的值为B12编译出错首先声明指
7、针变量pa,将变量a的地址赋给指针变量pa=*p+b将指针变量p所对应的值与b的和赋给a。*p1,*p2,m=5,n;以下均是正确赋值语句的选项是Cp1=&p2=&p1*p1=*p2;p2=p1;*p2=*p1;下面判断正确的是*a=china等价于*a;str10=;等价于charstr10;str=*s=*s;s=c4=abc,d4=c4=d4=(1)*是指针变量的说明符,说明该变量只能存放所定义类型变量的地址。(2).答案A错在*a=,应将其改为a=;答案D错在char答案B错在char,应将其改为char*str10;C为本题正确答案。设p1和p2是指向同一个字符串的指针变量,c为字符
8、变量,则以下不能正确执行的赋值语句是c=*p1+*p2;p2=c;p1=p2;c=*p1*(*p2);本题B项错在c是一个字符变量,而p2所指向的地址值是一个字符串,两者不相匹配,因而无法进行附值运算。下面程序段的运行结果是str=ABC,*p=str;,*(p+3);0字符C的地址abcdes+=2;cdec无确定的输出结果fun(char*a,*b)a=b;(*a)+;c1=A,c2=a,*p1,*p2;c1;c2;fun(p1,p2);%c%cn,c1,c2);AAbaaAaBb在fun函数中指针a原指向c1,b原指向c2,由于赋值,a也指向c2,所以(*a)+;也就是c2+,而c1的值
9、保持不变。下面程序应能对两个整型变量的值进行交换。以下正确的说法是inta=10,b=20;(1)a=%d,b=%dn,a,b);swap(&b);(2)a=%d,b=%dnswap(intp,intq)t=p;p=q;q=t;该程序完全正确该程序有错,只要将语句swap(&中的参数改为a,b即可该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可以上说法都不对(1)在函数调用时,a的值传给p,b的值传给q。执行完swap函数后,p和q的地址是互换了,但main函数中的a和b并未互换。也就是说由于单向传送的值传递方式,形参值的改变无法传给实参。(2)如果将语句
10、swap(&中的参数改为a,b,则将a的值传递给p,b的值传递给q。但执行完swap后,p和q的值是互换了,但main函数中的a和b并未互换。也就是说由于单向传送的值传递方式,形参值的改变无法传给实参。(3)如果将swap()函数中的形参p和q以及t均定义为指针(执行语句不变),执行swap函数时,先将a的地址传递给指针变量p,b的地址传递给指针变量q,然后由指针变量t互换p的q的地址。并没有改变a和b的值。(4)本题应该把swap()函数改成这样:*p,int*q)t=*p;*p=*q;*q=t;这时执行程序时,先将a的地址传递给指针变量p,b的地址传递给指针变量q,然后,将*p的值(即a的
11、值)传递给t,将*q的值(即b的值)传递给*P(即a),将t的值(即*p的值)传递给*q(即b),从而将a和b互换。编程题:一、以三种基本控制结构、数组、字符串编程为主。样题1:从键盘输入一个字符串。对该字符串进行变换后输出,要求将字符串中的大写字母变成小写字母,其他字符不变。例如:从键盘输入字符串AcfDe则:输出为acfdestdio.hscanf(%s,str);while(stri!=0if(stristriZstri+=32;printf(%s,str);样题:从键盘输入一个不超过20个字符的字符串,存储到一个字符数组中。将下标为奇数位臵上的字符按顺序复制到另外一个字符数组中并输出。
12、如:输入abcdefg,则输出bdf。i,j;str121,str211;gets(str1);for(i=1,j=0;str1i!if(i%2!=0)str2j=str1i;j+;str2j=puts(str1);puts(str2);样题:输入一个N*N矩阵,求该矩阵对角线元素之和。要求N用#define进行定义#defineNaNN=1,2,3,4,5,6,7,8,9;i,jsum=0;for(j=0;jj+)if(i=j|i+j=2)sum=+aij;对角线元素和为:,sum);样题:输入一个33矩阵,找出该矩阵中值最小的元素,按行、列输出该矩阵以及最小元素。a33=9,8,7,6,5
13、,4,3,2,1;i,j,min=a00;if(aijmin)min=aij;%5d,aij);矩阵中值最小的元素:,min);样题:输入10个整数到一个一维数组中,按逆序重新存放,并输出。二、以函数的编程为主,算法则相对简单,但是要求学生一定要用自定义函数实现。样题:写一函数max,计算三个数中最大数在主函数中输入三个数,调用该函数求出其中最大数并输出。(要求:三个数为实数)编写一个函数,其功能是;检验一个输入的四位数字是否是闰年,如果是闰年则返回1,否则返回0。在主函数中从键盘输入一个四位数XXXX,调用该函数进行判断,如果是则输出yes,否则输出no(提示:如果该四位数能被4整除但不能被100整除,则是闰年;如果该四位数能被400整除,则是闰年)if(x%4=0&x%100!=0)|(x%400=0)1;else0;year;请输入4位数的年份:year);if(fun(year)YESnNOn编写函数打印以下图形,将图形中的行数作为函数的形参。在main()函数中输入行数n,调用该函数打印行数为n的图形。(如:输入5,则打印出5行的三角形)*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1