C语言习题(5)
2018年9月计算机二级C语言考试章节习题及答案(5)
2018年9月计算机二级C语言考试章节习题及答案(5) 第2章 C程序设计的初步知识2.2 标识符、常量和变量1[单选题] C语言主要是借助以下哪个功能来实现程序模块化A.定义函数B.定义常量和外部变量C.三种基本结构语句D.丰富的数据类型参考答案:A参考解析:C语言用函数实现软件的模块化设计。
2[单选题] 以下叙述中错误的是A.非零的数值型常量有正值和负值的区分B.常量是在程序运行过程中值不能被改变的量C.定义符号常量必须用类型名来设定常量的类型D.用符号名表示的常量叫符号常量参考答案:C参考解析:C语言中,常常用一个标识符来代表一个常量,称为符号常量。
符号常量在使用之前要先定义,定义格式如下: #define<符号常量名>(常量) 其中,<符号常量名)用标识符,习惯上用大写字母,<常量>可以是数字常量,也可以是字符3[单选题] C语言中char 类型数据占字节数为A.3B.4C.1D.2参考答案:C参考解析:C语言中char 类型数据占字节数为1.4[单选题] 下列叙述中正确的是A.可以用关系运算符比较字符串的大小B.空字符串不占用内存,其内存空间大小是0C.两个连续的单引号是合法的字符常量D.两个连续的双引号是合法的字符串常量参考答案:D参考解析:两个连续的双引号:"",是一个字符串常量,称为“空串”5[单选题] 有以下程序(strcpy 为字符串复制函数,strcat 为字符串连接函数)#include#includemain(){ char a[10]="abc",b[10]="012",c[10]="xyz";strcpy(a+1,b+2);puts(strcat(a,c+1));}程序运行后的输出结果是A.a12xyzB.12yzC.a2yzD.bc2yz参考答案:C参考解析:程序执行后strcpy(a+1,b+2)后,字符数组a 的值为“a2”,再进行字符串的连接strcat(a,c+1),此时字符数组a 的值为“a2yz”。
c语言习题1-5章
C语言习题1-5章单项选择1.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是()。
A:(exp==0)B:(exp!=0)C:(exp==1)D:(exp!=1)答案:B2.putchar函数可以向终端输出一个()。
A:整型变量表达式值B:实型变量值C:字符串D:字符或字符型变量值答案:D3.C语言中运算对象必须是整型的运算符是()。
A:%=B:/C:=D:〈=答案:A4.以下数据中,不正确的数值或字符常量是()。
A:8.9e1.2B:10C:0xff00D:82.5答案:A5.一个C语言程序是由()。
A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B6.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。
int x=1,y=2,z=3;A:2B:3C:6D:5答案:C7.若int a=2,则执行完表达式a-=a+=a*a后,a的值是()。
A:-8B:-4C:-2D:0答案:D8.以下叙述中错误的是()。
A:可以通过typedef增加新的类型B:可以用typedef将已存在的类型用一个新的名字来代表C:用typedef定义新的类型名后,原有类型名仍有效D:用typedef可以为各种类型起别名,但不能为变量起别名答案:A9.结构化程序由三种基本结构组成,三种基本结构组成的算法()。
A:可以完成任何复杂的任务B:只能完成部分复杂的任务C:只能完成符合结构化的任务D:只能完成一些简单的任务答案:A10.以下关于运算符优先顺序的描述中正确的是()。
A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C11.下列程序段的输出结果为()。
C语言程序设计习题5
习题5参考解答1.数组是相同数据类型的集合,分为一维数组、二维数组及多维数组。
在什么情况下使用数组?在什么情况下使用一维数组?解:当需要处理的数据为相同类型的数据的集合时,可以使用数组。
如果这些数据的描述用一个量就可以,这时就用一维数组。
例如,一组学生的学号,就可以使用一维数组。
2.数组元素又称为下标变量,数组元素的下标有何意义?解:下标的意义是对数组的各个数组元素进行标识和区分。
由数组名和下标结合起来形成数组元素的名字。
3.使用字符数组来存储字符串应注意什么问题?解:需要注意的问题是字符数组在存储字符串时是以'\0'作为结束标记的。
这个'\0'是系统自动加上的。
所以字符数组的长度需要比它要存储的字符串的长度至少多1。
例如,要存储字符串"abcd",因为它的长度为4,所以存储它的字符数组的长度至少为5。
4.常用的字符处理函数有哪些?解:常用的字符处理函数有以下8个。
(1)puts(字符串):作用为将一个字符串输出到终端。
(2)gets(字符数组):作用为从终端输入一个字符串到字符数组,并且得一个函数值。
(3)strcat(字符串1,字符串2):作用为进行字符串的连接。
(4)strcpy(字符串1,字符串2):作用为进行字符串的复制。
(5)strcmp(字符串1,字符串2):作用为进行字符串的比较。
(6)strlen(字符串):作用为求字符串的长度。
(7)strlwr(字符串):作用为将字符串中的大写字母转换成小写字母。
(8)strupr(字符串):作用为将字符串中的小写字母转换成大写字母。
5.随机产生10个两位整数存储到一个一维数组中,找出其中的最大数。
解:#include<stdio.h>#include<stdlib.h>#define random(x) (rand()%x) int main(){int a[10],max;int x;for(x=0;x<10;x++)a[x]=random(100);max=a[0];for(x=0;x<10;x++){if(a[x]>max)max=a[x];printf("%4d",a[x]);}printf("\nmax=%d\n",max);return 0;}程序运行结果如下:41 67 34 0 69 24 78 58 62 64 max=786.输入10个整数,要求按照从小到大的顺序输出。
C语言习题知识5
void main()
{
int x;
scanf("%d",&x);
if(x--<5) printf("%d\n",x);
else printf("%d\n",x++);
} 程序运行后,如果从键盘上输入 5,则输出结果是( )
A) 3
B) 4
C) 5
D) 6
(12)若执行以下程序时从键盘上输入 9,则输出结果是( )
scanf("%f,%f",&a,&b);
if (a>b)
{
t=a;
a=b;
b=t;
}
printf("%5.2f,%5.2f",a,b);
}
运行后输入-3.5,4.8,正确的输出结果是( )
A) -4.80 , -3.50
B) -3.50 , 4.80
C) 4.8, -3.5
D) 4.80, -3.50
A) 11
B) 10
C) 9
D) 8
#include <stdio.h>
void main()
{
int n;
scanf("%d",&n);
if(n++<10) printf("%d\n",n);
else printf("%d\n",n--);
} (13)若 a、b、c1、c2、x、y、均是整型变量,正确的 switch 语句是( )
printf("%5.2f\n",z);
}
(14)如果 int x=10,执行下面程序后,变量 x 的结果为 13 。
C语言程序设计教程第五章练习题题目
单选题1、关于数组的定义与初始化,下列哪一项是错误的()A.int arr[5] = {1,2,3,4,5};B.int arr[] = {1,2,3,4,5};C.int arr[5] = {1,2,3};D.int arr[5] = {1,2,3,4,5,6};2、在定义数组int arr[10]后,下列选项中对arr的引用正确的是()A.arr[10]B.arr[6.3]C.arr(6)D.arr[0]3、在C语言中,引用数组元素时,其数组下标的数据类型允许是()4、若int arr[5] = {1,2,3}; 则arr[2]的值为()5、在执行int arr[][3] = {1,2,3,4,5,6}:语句后,arr[1][0]的值为()6、关于二维数组,下列选项能正确定义并赋初值的是()A.int n = 5,b[n][n];B.int a[1][2] = {{1},{3}};C.int c[2][] = {{1,2},{3,4}};D.int a[3][2] = {{1,2},{3,4}};7、阅读下列程序段:char s[18] = "a book!";printf("%.4s\n", s);其输出结果为()A.a book!B.a bookC.a bo8、阅读下列程序:int a[4][4] = { { 1, 3, 5, }, { 2, 4, 6 }, { 3, 5, 7 } };printf("%d%d%d%d\n", a[0][0], a[1][1], a[2][2], a[3][3]);正确的输出结果为()9、阅读下面程序:int i;int x[4][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };for (i = 0; i<4; i++)printf("%3d", x[i][3 - i]);下列选项中哪一项是正确的输出结果()A.1 5 9 13B.1 6 11 16C.4 7 10 13D.4 8 12 1610、下列描述中不正确的是()。
《C语言程序设计》教材习题答案第5章
一、选择题1.设有程序段”int k=10;while(k=0)k=k-1;”,则下面叙述正确的是D 循环体语句一次也不执行2.设有程序段”int x=0,s=0;while(!x!=0)s+=++x;printf(“%d”,s);”则A 运行程序段后输出13.若有语句”int x=3;do{printf(“%d\n”,x-=2);}while(!(--x));”,则该程序段C 输出的是1和-24.下面循环语句中,错误的是D int a=1,b=2;do b--while(b= =0);5.已知”int i=5;”,下列do…while循环语句的循环次数为C 5do{printf(“%d\n”,i--);}while(i!=0);6.循环语句”for(int i=0,j=10;i=j=10;i++,j--)”的循环次数是D 无限7.循环语句”while(int i=0;)i--;”的循环次数是A 08.下述有关break语句的描述中,不正确的是C break语句用于if语句的内嵌语句内,它结束该if语句9.下面关于循环语句的描述中,错误的是B 循环体内必须同时出现break语句和continue语句10.以下不是死循环的是D for(;(c=getchar()!=’\n’);)printf(“%c”,c);11.执行语句”for(i=0;i++<3;);”后,变量i的值为C 412.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C 循环4次13.与语句”while(!x);”等价的语句是A while(x= =0);14.执行下列程序段后a的值为B 2int a=1,b=10;do{b-=a;a++;}while(b--<0)二、编程题1.读入用户输入的6个整数并显示其平均值。
#include<stdio.h>main(){float sum=0;int tmp;int i;for(i=0;i<6;i++){printf("输入第%d个数:",i+1);scanf("%d",&tmp);sum=sum+tmp;}printf("平均值是:%f",sum/6);}2.先读入一个正整数n,然后计算并显示前n个偶数的和。
C语言课后习题参考答案(前5章)
《C语言程序设计基础》书后习题参考答案(无编程题答案,红色为书上错误)第二章习题一、选择题。
1、在C语言中,要求参加运算的数必须是整数的运算符是()A)% B)/ C)!D)*2、若已定义x和y为double类型,则表达式“x=1.0,y=x+3/2”的值是()A)1 B)2 C)2.0 D) 2.53、若变量已正确定义并赋值,符合C语言语法的表达式是()A)a=a+7; B) a=7+b+c,a++ C) int (12.3/4 ) D) a=a+7=c+b4、若有定义:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为()A)1.0 B)1 C) 2.0 D)25、若x和n均是int型变量,且x的初值为12,n的初值为5 ,则执行表达式x%=(n%=2) 后x 的值为()A) 0 B)1 C) 2 D)36、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为()A)7 B)8 C)9 D)107、指出下列哪一个选项的程序是错误的()A)#include<stdio.h> B) #include<stdio.h>void main( ) void main( ){int x,y,z; {int x,y,z;x=0;y=x+1; x=0,y=x+1;z=x+y; z=x+y;} }C) #include<stdio.h> D) #include<stdio.h>void main( ) void main( ){int x,y,z; {int x,y,z;x=0;y=x+1, x=0,y=x+1;z=x+y; z=x+y,} }8、若a为整型变量,则以下语句( )a=-2L;printf(“%d\n”,a);A)赋值不合法B)输出值为-2 C)输出为不确定值D)输出值为29、若变量a,i已经正确定义,且i已正确赋值,则合法的语句是()A)i=int(a) B) ++i; C)a=a++=5; D) a=int(i);10、若执行以下程序段后,c3的值为()int c1=1,c2=2,c3;c3=1.0/c2*c1;A)0 B)0.5 C)1 D)211、如下程序的运行结果是()#include<stdio.h>void main( ){ int y=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}A) 3 4 B) 4 2 C) 4 3 D) 3 312、以下程序的输入结果为()#include<stdio.h>void main( ){int i=4,a;a=i++;printf(“a=%d,i=%d’,a,i);}A)a=4,i=4 B)a=5,i=4 C)a=4,i=5 D)a=5,i=513、以下程序的输出结果是()#include <stdio.h>void main( ){ int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b?(a>c?a:c):( b); //多了(}A) 5 B) 4 C) 6 D) 不确定14、在C语言中,如果下面的变量都是int类型,则输出的结果是()sum=pad=5;pad=sum++,pad++,++pad;printf(“%d\n”,pad);A)7 B)6 C)5 D)415、已知int i;float f;,正确的语句是()A)(int f)%i; B)int(f)%i; C) int(f%i); D)(int)f%i;16、已知int j,i=1;执行语句j=-i++;后,j的值是()A)1 B)2 C)-1 D)-217、已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是()A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=a*(a=3)18、C语言中运算对象必须是整型的运算符是( )A) %= B) / C) = D)<=19、有以下程序main(){ int m=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是( )A)12353514 B)12353513 C)12343514 D)1234351320、下面程序的输出结果是()#include<stdio.h>main( ){int x=5,y=3;printf(“%d\n”,y=x/y); }A)0 B)1 C)3 D)不确定的值21、执行下列程序中的输出语句后,a的值是()#include<stdio.h>void main( ){int a;printf(“%d\n”,(a=3*5,a*4,a+5)); }A) 65 B)20 C)15 D)1022、执行下列程序时输入1234567,程序的运行结果为()#include<stdio.h>main( ){int x,y;scanf (“%2d%2ld”,&x,&y);printf(“%d\n”,x+y); }A)17 B)46 C)15 D)923 、已知char a;int b;float c;double d; 则表达式a*b+c-d结果类型为()A) double B)int C)float D) char二、填空题1、若i为int整型变量且赋值为6,则运算i++后的表达式的值是__6__,变量i的值是___7___。
C语言第五章习题及答案
第五章习题答案一、选择题1) 有以下程序#include <stdio.h>main(){ int n=2,k=0;while(k++&&n++>2);printf("%d %d\n",k,n);}程序运行后的输出结果是A)0 2 B)1 3 C)5 7 D)1 22)有以下程序:main(){ int k=5;while(--k) printf("%d",k-=3);printf("\n");}执行后的输出结果是()。
A)1 B)2 C)4 D)死循环3)有以下程序#include<stdio.h>main(){int y=10;while(y--);printf(”y=%d\n”,y);}程序执行后的输出结果是A)y=0 B)y= -1 C)y=1 D)while构成无限循环4) 若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i)其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环5)有以下程序:main(){ int i;for(i=1;i<=40;i++){ if(i++%5==0)if(++i%8==0) printf("%d",i); }printf("\n");}执行后的输出结果是()。
A)5 B)24 C)32 D)406) 有以下程序#includes <stdio.h>main(){ int a=1,b=2;for(;a<8;a++) {b+=a; a+=2;}printf ("%d,%d\n",a,b);}程序运行后的输出结果是(A)9,18 (B)8,11 (C)7,11 (D)10,147) 有以下程序#include<stdio.h>main(){int y=9;for( ; y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)8) 一下程序段中的变量已正确定义for(i=0;i<4;i++,j++)for(k=1;k<3;k++); printf("*");程序段的输出结果是A)******** B)**** C)** D)*9) 有以下程序#iinclude <stdio.h>main(){ int i,j;for(i=3; i>=1; i--){ for (j=1;j<=2;j++) printf(“%d”,i+j);printf(“\n”);}}程序的运行结果是()A) 2 3 4 B) 4 3 2 C) 2 3 D) 4 53 4 5 5 4 3 3 4 3 44 5 2 3 答案:D10)有以下程序main(){int i,j;for(i=1;i<4;i++){for(j=i;j<4;j++) printf(“%d*%d=%d “,i,j,i*j);printf(“\n”);}}程序运行后的输出结果是A) 1*1=1 1*2=2 1*3=3 B) 1*1=1 1*2=2 1*3=32*1=2 2*2=4 2*2=4 2*3=63*1=3 3*3=9C) 1*1=1 D) 1*1=11*2=2 2*2=4 2*1=2 2*2=41*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9 11) 有以下程序#include<stdio.h>main(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是A)0 B)1 C)2 D)312) 有以下程序#include <stdio.h>main(){ int i=5;do{ if (i%3= =1)if (i%5= =2){printf(“*%d”,i); break; }i++;}while(i!=0);printf(“\n”);}程序的运行结果是A)*7 B)*3*5 C) *5 D)*2*6答案:A13) 有以下程序#include <stdio.h>main(){ int c=0,k;for(k=1;k<3;k++)switch(k){ default:c+=k;case 2:c++;break;case 4:c+=2;break;}printf("%d\n",c);}程序运行后的输出结果是A)3 B)5 C)7 D)914) 设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是A)n=0;while((ch=getchar())!='\n')n++;B)n=0;while(getchar()!='\n')n++;C)for(n=0;getchar()!='\n';n++);D)n=0;for(ch=getchar();ch!='\n';n++);15)有以下程序#includemain(){int a=1,b=2;while(a<6){b+=a;a+=2;b%二10;}printf(”%d,%d\n”,a,b);}程序运行后的输出结果是A)5,11 B)7,1 C)7,11 D)6,116) 要求通过while循环不断读入字符,当读入字母N时结束循环。
C语言习题(前五章)
第一部分 C语言基础一、判断题1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。
【】2.main函数必须写在一个C程序的最前面。
【】3.一个C程序可以包含若干的函数。
【】4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
但是可以增加程序的可读性。
【】5.C程序的注释只能是一行。
【】6.C程序的注释不能是中文文字信息。
【】第二部分数据类型、运算符及表达式一、选择题1.合法的字符常量是( )。
A)‘\t’B) “A” C)‘\028’D)’\x32’2.是C语言提供的合法的数据类型关键字。
A) Float B) signed C) integer D)Char3.在以下各组标识符中,不合法的标识符是。
(1)A)B01 B)table_1 C) 0_t D) k%(2)A)Fast_ B) void C)pbl D)<book>(3)A)xy_ B)longdouble C)*p D)CHAR(4) A) sj B)int C)_xy D)w_y235.下面选项中,不是合法整型常量的是。
A)160 B)-0xcdg C)-01 D)-0x48a6.假设int型在内存中占16位,判断int x = 0xaffbc;x的结果是。
A)赋值非法 B)溢出 C)为affb D)为ffbc7.下面选项中,均是合法浮点数的是。
(1)A)+1e+1 B)-.60 C)123e D)-e3(2)A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4(3)A)03e2 B)-8e5 C)+2e-1 D)5.e-08.在C语言中,参加运算的数必须是整数的运算符是。
A)/ B)* C)% D) =9.在C语言中,字符型数据在内存中以形式存放。
A)原码 B)BCD码 C)反码 D)ASCII码10.下列语句中,符合语法的赋值语句是。
A)a=7+b+c=a+7; B)a=7+b++=a+7;C)a=(7+b,b++,a+7); D)a=7+b,c=a+7;12.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,是正确的。
C语言第五章习题带答案
练习5-1答案一、选择题1.合法得数组说明语句就是( B )。
A.int a[]="string";B.int a[]={0,1,2,3,4,5};C.char a="string";D.char a[5]={'0', '1', '2', '3', '4', '5'};2.以下对一维整型数组a得说明正确得就是( D )。
A.int a(10);B.int n=10, a[n];C.int n;D.#define SIZE 10scanf("%d", &n); int a[SIZE];int a[n];3.已知:int a[10];,则对a数组元素得正确引用就是( D )。
A.a[10]B.a[3、5]C.a(5)D.a[10-10]4.以下对一维数组a进行正确初始化得语句就是( C )。
A.int a[10]=(0, 0, 0, 0, 0);B.int a[10]={};C.int a[]={0};D.int a[2]={10, 9, 8};5.对以下说明语句得正确理解就是( B )。
int a[10]={6, 7, 8, 9, 10};A.将5个初值依次赋给a[1]至a[5]B.将5个初值依次赋给a[0]至a[4]C.将5个初值依次赋给a[6]至a[10]D.因为数组长度与初值得个数不相同,所以此语句不正确二、填空题6.求所有不超过200得N值,N得平方就是具有对称性质得回文数。
所谓回文数就就是将一个数从左到右与从右到左读都就是一样得,例如:34543与1234321都就是回文数。
例如:满足题意要求得数有:N=1,11*11=121;N=111,111*111=12321。
#include <stdio、h>main(){int m[16], n, i, t, count=0;long a, k;printf("Result is:\n");for (n=10; n<200; n++){ k=0;t=1;a=n*n;for (i=1; a!=0; i++){ ①;a/=10;}for (; i>1; i--){ k+=m[i-1]*t;②;}if ( ③) printf("%2d:%10d %10d\n", ++count, n, n*n);}}则①为( m[i]=a%10; )、②为( t*=10; )、③为( k==n*n )。
C语言程序设计教程 第五章 课后习题参考答案
C语言程序设计教程第五章课后习题参考答案一、选择题1. B2. A3. C4. B5. D二、填空题1. while2. binary3. 164. 35. continue6. global三、判断题1. 错误2. 正确3. 错误4. 错误5. 正确四、编程题1.```c#include<stdio.h>int main() {int num;printf("请输入一个整数:"); scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数\n", num); } else {printf("%d是奇数\n", num); }return 0;}```2.```c#include<stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("%d与%d的和为%d\n", num1, num2, num1 + num2); return 0;}```3.```c#include<stdio.h>int isPrime(int num) {int i;if (num <= 1)return 0;for (i = 2; i <= num / 2; i++) {if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num); } else {printf("%d不是素数\n", num); }return 0;}```4.```c#include<stdio.h>int factorial(int num) {int i, result = 1;for (i = 1; i <= num; i++) {result *= i;}return result;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d的阶乘为%d\n", num, factorial(num)); return 0;}```五、简答题1. C语言逻辑与运算符(&&)短路特性是什么?答:C语言逻辑与运算符(&&)具有短路特性,即在进行逻辑与运算时,如果前一个表达式的值为假(0),则后面的表达式将不会被计算,整个逻辑与表达式的值直接为假(0)。
C语言习题(前五章)参考答案
C 语言习题参考答案第一部分 C 语言基础一、判断题1.对 2.错 3.对 4.对 5.错 6.错第二部分 数据类型、运算符及表达式一、选择题 1.AD 2.B 3.(1)CD (2)BD (3)C (4) B 5.B6.D /*赋值时,若有溢出,则只截取低位*/ 7.(1)AB (2)BD (3)ABCD 8.C 9.D10.C /*A,B 赋值运算符左值只能是变量,不能是表达式或常量,D 是逗号语句*/12.B /*赋值运算符优先级比逗号表达式高*/ 13.A14.D /*八进制数中,合格字符只能是0~7*/ 15.A /*二进制补码*/16.A /*八进制数中,合格字符只能是0~7*/ 17.D 19.B 20.D21.B /*赋值运算符右值的数据类型强制转换为左值的数据类型*/ 22.ABD 23.D 24.C 25.ABD 二、填空题1. 1 , -128~127 ; 2 , -32768~32767 ; 4 ,-2147483648~2147483647 ; 4 ,383810~10 。
3. 单引号, 双引号 。
4. 优先级 , 结合性 。
6. 2.5 。
7. 3.5 。
11. 24 , 10 , 60 , 0 , 12 , 0 12. double 。
14. 9 。
16. 1.5 , 1 。
18. 2 , -2 。
/*余数符号仅由被除数的符号决定*/ 三、判断题1.错 /*如常量*/3.错 /*如float 只能准确表示7位有效数字,多余的位数是近似表示*/4.错5.对6.对 10.错 四、简答题4写出下列各数的二进制补码(写成16为二进制形式):32: 0000 0000 0010 0000 -1: 1111 1111 1111 1111 -32768:1000 0000 0000 0000 2002: 0000 0111 1101 0010 -128: 1111 1111 1000 0000 0: 0000 0000 0000 0000 五、程序阅读 1.aabb[4个空格]cc[6个空格]c A 6 2.9,11,9,10第三部分 顺序结构一、选择题 2.D3.B /*假设int 占2个字节*/4.D5.C 7.C 8.B 9.D 10.B11.C /*D ,scanf 函数的格式符中不能规定小数位数*/ 12.A /*格式控制符:%2d%2d%3d,输入时,前两个空格对应的数字赋给a ,紧挨着的两个空格的位置赋给b*/ 13.C 14.D 15.D 二、填空题 6. %8. -10 12 410.34[回车] 题目补充:scanf 函数的调用形式为:scanf(“%d%d%f ”,&i,&j,&x); 。
c语言第五章习题
第五章练习题一、选择题1、判断字符串a和b是否相等,应当使用()A、if(a==b)B、if(a=b)C、if(strcpy(a,b))D、if(strcmp(a,b))2、以下正确的定义语句是()A、int a[1][4]={1,2,3,4,5};B、float x[3][]={{1},{2},{3}};C、long b[2][3]={{1},{1,2},{1,2,3}};D、double y[][3]={0};3、以下各组选项中,均能正确定义二维实型数组a的选项是()A、float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}};B、float a(3,4); float a[3][4]; float a[ ][ ]={{0},{0}};C、float a[3][4]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}};D、float a[3][4]; float a[3][ ]; float a[ ][4];4、下面程序的运行结果是()#include "stdio.h"main(){ char str[]="SSSWLIA",c;int k;for(k=2;(c=str[k]!='\0');k++){ switch(c){case 'I':++k;break;case 'L':continue;default:putchar(c);continue;}putchar('*');}}A、SSW*B、SW*C、SW*AD、SW5、下面程序段是输出两个字符串中对应相等的字符。
横线处应填入()char x[]="programming";char y[]="Fortran";int i=0;while(x[i]!='\0'&&y[i]!='\0')if(x[i]==y[i]) printf("%c",《1》);A、x[i++]B、y[++i]C、x[i]D、y[i]6、有下面的程序段,则()char a[3],b[]="china";a=b;printf("%s",a);A、运行后将输出ChinaB、运行后将输出ChC、运行后将输出ChiD、编译出错7、下面程序的运行结果是()main(){ char ch[7]={"12ab56"};int i,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';printf("%d\n",s);}A、1B、1256C、12ab56D、12568、定义如下变量和数组:则下面语句的输出结果是()int k;int a[3][3]={1,2,3,4,5,6,7,8,9,};for(k=0;k<3;k++)printf("%d",a[k][2-k]);A、3 5 7B、3 6 9C、1 5 9D、1 4 79、下面程序段的运行结果是()char c[5]={'a','b','\0','c','\0'};printf("%s",c);A、'a''b'B、abC、ab cD、abc10、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()A、2B、3C、4D、无确定值11、下面程序的运行结果是()main()for(i=1;i<6;i++){ a[i]=9*(i-2+4*(i>3))%5;printf("%2d",a[i]);}}A、-4 0 4 0 4B、-4 0 4 0 3C、-4 0 4 4 3D、-4 0 4 4 012、下面程序的运行结果是()main(){int a[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){ for(j=1;j<6;j++)printf("%2d",a[i][j]);printf("\n");}}A、1 1 1 1 1B、0 0 0 0 1C、1 0 0 0 0D、1 0 0 0 11 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 01 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 01 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 01 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 113、下述对C语言字符数组的描述中错误的是()A、字符数组可以存放字符串。
C语言程序设计案例教程》(第四版)熊锡义,林宗朝教材习题及答案教材习题习题 (5)[4页]
习题5一选择题1.执行下面的程序段后,变量k中的值为int k=3, s[2];s[0]=k; k=s[1]*10;A) 不定值B) 33 C) 30 D) 102.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是void main(){char s[100];int c, i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s \n",c,i,s);}A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 3.有如下程序void main0{int n[5]={0,0,0},i,k=2;for(i=0;i<k;i++)n[i]=n[i]+1;printf("%d\n",n[k]);}该程序的输出结果是A) 不确定的值B) 2 C) 1 D) 04.有如下程序void main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<i;j++) s+=a[i][j]printf("%d\n",s);}该程序的输出结果是A) 14 B) 15 C) 16 D) 17 5.以下程序的输出结果是void main(){int i, 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,96.以下程序的输出结果是main(){ char w[][10]={ "ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",w[k]);}A) ABCD B) ABCD C) EFG D) EFGHFGH EFG JK IJKLKL IJ OM7.下面语句中不正确的是A) static int a[5] = {1 , 2 , 3 , 4 , 5 }; B) static int a[5] = {1 , 2 , 3 };C) static int a[ ] = {0 , 0 , 0 , 0 , 0 }; D) static int a[5] = {0*5};8.若有说明:int a[ ][4] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } , 则数组第一维的大小为A)2 B)3 C)4 D)不确定的值9.若定义static int a[2][2] = {1,2,3,4},则a数组的各数组元素分别为A) a[0][0] = 1 , a[0][1] = 2 , a[1][0] = 3 , a[1][1] = 4B) a[0][0] = 1 , a[0][1] = 3 , a[1][0] = 2 , a[1][1] = 4C) a[0][0] = 4 , a[0][1] = 3 , a[1][0] = 2 , a[1][1] = 1D) a[0][0] = 4 , a[0][1] = 2 , a[1][0] = 3 , a[1][1] = 110.下列语句中,不正确的是A) static int a[2][3] = {1 , 2 , 3 , 4 , 5 , 6};B) static int a[2][3] = {{1}, { 4 , 5}};C) static int a[ ][3] = {{1}, {4}};D) static int a[ ][ ] = {{1 , 2 , 3 }, {4 , 5 , 6}};二填空题(1) 设有数组定义: char array [ ]="China"; 则数组array所占的空间为。
2016计算机二级《C语言》基础练习题及答案(5)(分享文档)
2016年计算机二级《C语言》基础练习题及答案(5) 1[单选题] 有以下程序:程序运行后的输出结果是( )。
.A.10,One*Dream!B.9,One*Dream!C.9,One*WorldD.10,One*World参考答案:A参考解析:P是指向二维字符数组第二行One+Dream!的数组指针,所以长度是l0,打印输出的也是该字符串。
.2[简答题]编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。
.程序运行后,若输入精度0.0005,则程序应输出为3.14…。
.注意:部分源程序给出如下。
.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
.试题程序:参考解析:【参考答案】【考点分析】本题考查:迭代法求给定多项式的值。
.迭代算法是让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。
.需要注意变量的数据类型以及赋初值操作。
.【解题思路】首先应该定义double类型变量,并且赋初值,用来存放多项式的某一项和最后的总和。
.从第二项开始以后的每一项都是其前面一项乘以n/(2*n+1),程序中用sl来表示每一项,s表示求和后的结果。
.需注意sl和s的初值都为1.0,因为循环变量从第二项开始累加。
.3[单选题] 软件设计中模块划分应遵循的准则是( )。
.A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合参考答案:B参考解析:软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。
.模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。
.模块之间的耦合应尽可能的低,模块的内聚度应尽可能。
.4[单选题] 有以下程序:程序运行后的输出结果是( )。
.A.let=4B.m=2C.m=6D.m=5参考答案:C参考解析:第一次外循环i的值为l,第一次内循环j的值为3,不满足条件执行in}= i}j即m的值为3;第二次j的值为2,不满足条件执行m·=i*j,即m的值为6;第三次j的值为1,不满足条件执行nl*=i*j,即m的值仍为6。
C语言练习题第五章
B.1
C.true
D.非0
6.在C语言中,当do-while语句构成的循环中的条件为________时,结束循环。
A.0
B.1
C.true
D.非零
7.下列循环体执行多少次?
k=70;
while(k=0) k-=1;
A.70次
B.69次
C.无限次
D.0次
8.while(!x)中的(!x)与下式中的________等价。
4.D
5.A
6.A
7.D
8.B
9.D
10.B
11.C
12.B
二.填空题:
1.D
2.A
3.B
4.C
5.A
{
if(x>=10) break;
if(x%2==1)
{ x+=5;
continue;
}
x-=3;
}
A.(1).11
(2).6
B.(1).10
(2).5
C.(1).13
(2).4
D.(1).5
(2).13
答案
一.选择题:
1.B
2.A
3.C
while(y--);
printf("y=%d\n",y);
A.y=-1
B.y=0
C.死循环
D.y=9
3.下列程序段的输出结果为________?
int i=0,j=0,a=6;
if((++i>0)||(++j>0))a++;
c语言第五章选择结构程序设计(习题册答案)
c语⾔第五章选择结构程序设计(习题册答案)第五章选择结构程序设计基础练习(A)⼀、填空题1、关系表达式的运算结果是逻辑值。
C语⾔没有逻辑型数据,以1代表“真”,以0代表“假”。
2、逻辑运算符!是单⽬运算符,其结合性是由右结合性。
3、C语⾔提供的三种逻辑运算符是&&、|| 、!。
其中优先级最⾼的为!,优先级最低的为| | 。
4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和⾮0的整数,也可以是任何类型的数据。
系统最终以0 和⾮0 来判定它们属于“真”或“假”。
5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。
6、设x,y,z均为int型变量,请写出描述“x或y中有⼀个⼩于z”的表达式x7、条件“22&&x<3。
8、判断char型变量ch是否为⼤写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。
9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。
10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。
11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是0。
12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。
13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。
14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。
!(x>y)+(y!=z)||(x+y)&&(y-z)15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。
!(x=a)&&(y=b)&&016、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。
计算机二级C语言知识点与习题试卷 (5)
A) 栈是"先进先出"的线性表B) 队列是"先进后出"的线性表C) 循环队列是非线性结构D) 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构参考答案:D【解析】栈是先进后出的线性表,所以A)错误;队列是先进先出的线性表,所以B)错误;循环队列是线性结构的线性表,所以C)错误。
2、支持子程序调用的数据结构是()。
A) 栈B) 树C) 队列D) 二叉树参考答案:A【解析】栈支持子程序调用。
栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A)。
3、某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。
A) 10B) 8C) 6D) 4参考答案:C【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子节点总是比度为2的节点多一个,所以本题中是5+1=6个。
4、下列排序方法中,最坏情况下比较次数最少的是()。
A) 冒泡排序B) 简单选择排序C) 直接插入排序D) 堆排序参考答案:D【解析】冒泡排序与简单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是5、软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是()。
A) 编译程序B) 操作系统C) 教务管理系统D) 汇编程序参考答案:C【解析】编译软件、操作系统、汇编程序都属于系统软件,只有C)教务管理系统才是应用软件。
A) 软件测试的目的是发现错误并改正错误B) 对被调试的程序进行"错误定位"是程序调试的必要步骤C) 程序调试通常也称为DebugD) 软件测试应严格执行测试计划,排除测试的随意性参考答案:A【解析】软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A)错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计题1、已知三角形的三边长为a ,b ,c ,计算三角形面积的公式为: area = ))()((c s b s a s s ---,s =)(21c b a ++ 要求编写程序,从键盘输入a ,b ,c 的值,计算并输出三角形的面积。
#include <stdio.h>#include <stdlib.h>void main(){float a,b,c;int s,area;printf("请输入三角形三边的值:\n");scanf("%f %f %f",&a,&b,&c);if(a+b>c&&a+c>b){s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));}printf("三角形的面积是:");printf("%d\n",area);return 0;}2、编程打印以下图案。
平行四边形: #include <stdio.h> #include <stdlib.h> int main(){int i,j;for(i=4;i>0;i--){for(j=0;j<i;j++)printf(" ");for(j=0;j<6;j++)printf("*");printf("\n");}****** ****** ****** ****** ******************* *** ***** *******return 0;}直角三角形:#include <stdio.h>#include <stdlib.h>int main(){int i, n;for (i=1; i<=4; i++){for(n=2*i-1; n>0; n--)printf("*");printf("\n");}return 0;等腰三角形:#include <stdio.h>#include <stdlib.h>int main(){int i, n, j;for (i=1; i<=4; i++){for(j=i; j<4; j++)printf(" ");for(n=2*i-1; n>0; n--)printf("*");printf("\n");}return 0;}}3、从键盘任意输入一个年号,判断它是否是闰年。
若是闰年,输出“Yes”,否则输出“No”。
已知符合下列条件之一者是闰年:能被4整除,但不能被100整除。
或者能被400整除。
#include <stdio.h>#include <stdlib.h>int main(){int year;printf("请输入一个年份:\n");scanf("%d",&year);if((year%4==0&&year%100!=0)||year%400==0)printf("Yes\n");elseprintf("No");return 0;}4、编写程序输出下面的内容。
*****************************Hello World!*****************************5、要求定义一个MAX函数用来判断并返回两个数中的最大值,请利用这个函数求出从键盘输入的三个数的最大值并输出#include <stdio.h>#include <stdlib.h>int main(){int a,b,c,max;printf("please input three numbers:\n");scanf("%d%d%d",&a,&b,&c);if(a>b){if(a>b)max=a;elsemax=c;}else{if(b>c)max=b;elsemax=c;}printf("max=%d\n",max);return 0;}6、找出一组100个0到100间随机数中最小值及所在位置7、输入一批正整数(以零或负数作为输入结束标志),求其中素数的和。
要求定义和调用函数prime(n)判断此整数是否为素数,当n为素数时函数返回值为1,否则返回值为08、使用while语句编写一个程序求1+3+5+7+9+……+101的值9、一个三位的十进制数,如果它的三个数位的数字之立方和等于这个数本身,那么就把它称为一个“水仙花数”。
要求定义一个函数用来判断某数是否为水仙花数,并利用这个函数求出所有的水仙花数。
10、从键盘输入一批学生的C语言考试成绩,求平均成绩及最高分和最低分11、编程计算1!+2!+3!+4!+…+10!的值。
12、编程从键盘输入圆的半径r,计算并输出圆的周长和面积。
13、编程判断输入整数的正负性和奇偶性。
读程序,写运行结果1、void main(){int a=0,b=1;if(a=b)printf(“a equal to b”);elseprintf(“a not equal to b”);}运行结果:a equal to b2、int main(){int i, a[10];for(i=0; i<=9; i++){a[i]='A'+i;printf("%d\t",a[i]);}return 0;}运行结果:65 66 67 68 69 70 71 72 73 743、void swap2(int x[]){ int z;z=x[0]; x[0]=x[1]; x[1]=z;}main(){ int a[2]={1,2};swap2(a);printf("a[0]=%d\na[1]=%d\n",a[0],a[1]);}运行结果:a[0]=2a[1]=14、void main( ){ char k; int I;for(i=1;i<3;i++){ scanf(“%c”,&k);switch(k){ case …0‟: printf(“another\n”);case …1‟: printf(“number\n”);}}}运行结果:10numberanothernumber5、int main(){ int x=7,y=11;printf("x=%d,\ty=%d\n",x,y);printf("swapped:\n");swap(x,y);printf("x=%d,\ty=%d\n",x,y);return 0;}swap(int a,int b){ int temp;temp=a; a=b; b=temp;}运行结果:x=7, y=11swapped:x=7, y=116、void swap2(int x[]){ int z;z=x[0]; x[0]=x[1]; x[1]=z;}main(){ int a[2]={1,2};swap2(a);printf("a[0]=%d\na[1]=%d\n",a[0],a[1]); }运行结果:a[0]=2a[1]=17、void main( ){char a[]=”abcdefg”,b[10]=”abcdefg”;printf(“%d %d\n”,sizeof(a),sizeof(b));}运行结果:8 108、# 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);}运行结果:4, 39、int main(){int i=2,j=3,k;k=i+j;{int k=8;printf("%d\n",k);}printf("%d\n",k);return 0;}运行结果:8510、void main(){int i=6;if(i>5){int j=2*i;printf("%d\n",j);}else{int k=10*i;printf("%d\n",k);}}运行结果:1211、int main(){int i, j, s=0;int x[3][3]={0,1,2,3,4,5,6,7,8};for(i=0; i<3; i++)for(j=0; j<3 ; j++)if( i+j = = 2)s+=x[i][j];printf(“s=%d\n”, s);return 0;}运行结果:s=1212、int count=0;int f1(){count++;printf("the function f1 is in function.\n");return 1;}void f2(){count++;printf("the function f2 is in function.\n");}void main(){int i;for (i=0;i<10;i++){f1();printf(“%d\n”,count);f2();printf(“%d\n”,count);}}运行结果:the function f1 is in function.1the function f2 is in function.2the function f1 is in function.3the function f2 is in function.4the function f1 is in function.5the function f2 is in function.6the function f1 is in function.7the function f2 is in function.8the function f1 is in function.9the function f2 is in function.10the function f1 is in function.11the function f2 is in function.12the function f1 is in function.13the function f2 is in function.14the function f1 is in function.15the function f2 is in function.16the function f1 is in function.17the function f2 is in function.18the function f1 is in function.19the function f2 is in function.2013、void main(){int i=6;if(i>5){int j=2*i; //j的作用域printf(“%d\n”,j);} //***************//else{int k=10*i; //k的作用域printf(“%d\n”,k);} //****************//}运行结果:1214、void sort(int a[], int n){ int i, j ,t;for (i=0; i<n-1; i++)for (j=i+1; j<n; j++)if (a[i]<a[j]){ t=a[i]; a[i]=a[j]; a[j]=t; }}main(){ int aa[10]={1,2,3,4,5,6,7,8,9,10}, i;sort(aa+2, 5);for (i=0; i<10; i++) printf("%d,",aa[i]);printf("\n");}运行结果:1,2,7,6,5,4,3,8,9,1015、void main(){char str1[]=”Hello”,str2[]=”How are you?”,str[20;int len1,len2,len3;len1=strlen(str1);len2=strlen(str2);if(strcmp(str1,str2)>0){ strcpy(str,str1); strcat(str,str2); }elseif(strcmp(str1,str2)<0){ strcpy(str,str2);strcat(str,str1);}elsestrcpy(str,str1);len3=strlen(str);puts(str);printf(“Len1=%d,Len2=%d,Len3=%d\n”,len1,len2,len3); }运行结果:How are you?HelloLen1=5,Len2=14,Len3=1916\ struct Person{char name[20];unsigned long id;float salary;};Person allone[4]={{"Michael",12345,339.0},{"Pippen",12346,300.0},{"Johnson",12347,320.0},{"O'Neal",12348,315.0}};void main(){Person temp;for(int I=1;I<4;I++){for(int j=0;j<=3-I;j++){if(allone[j].salary>allone[j+1].salary){temp=allone[j];allone[j]=allone[j+1];allone[j+1]=temp;}}}for (int k=0;k<4;k++){printf(“%s\t%d\t%f\n”,allone[k].name,allone[k].id,allone[k].salary);}}17、struct STU{int num;float TotalScore;};void f(struct STU p){struct STU s[2]={{20044,550},{20045,537}};p.num = s[1].num; p.TotalScore = s[1].TotalScore;}main(){struct STU s[2]={{20041,703},{20042,580}};f(s[0]);printf("%d %3.0f\n", s[0].num, s[0].TotalScore);}运行结果:20041 703。