你选的是对的,答案就是C,当执行到y=x++时,因为y=x++是先运算后自加,所以y的值是10,此时x值后加变成了11,当执行printf()函数时,因为printf()函数运算是从最后运算的,所以首先运算的是y++,因为y++还是后加加,所以y的值还是10,在运算y,所以第二个输出的结果还是10,因为题中的printf()函数输出的只有两个结果,所以x++是不运算的,ok,完了
答案是C,打印三个号,if(x=y+x)注意这是一个赋值表达式,把y+z的结果赋值给x,所以x等于5,if语句判断是非0都为真,所以打印三个号,如果题目改成if(x==y+z),又不一样,变成了比较运算表达式,判断x是否等于y+z的结果,+号的运算优先级比==高,所以比较x和y+z的结果是否相等,显然结果不相等,执行else语句
1D 先调用fun(x,y),返回一个为7的值,再调用fun(7,y)
2C 值调用,int 值未改变
3D 调用长度范围是10的数组,最后执行一次p++=9,但P要增加1,所以得10
4C
5C 输出包含%d,取整数
6B main()函数决定
7A 因为最后i会变为10,有因为长度只有9,所以要减1
8C
9C
107 返回的就是字符串的长度
1、 有如下函数调用语句 func(rec1,rec2+rec3,rec4,rec5);
该函数调用语句中,含有的实参个数是
A) 3 B) 4
C) 5 D) 有语法错误
请选择-> A B C D
rec2+rec3算一个,所以是4个
2、 有如下程序
int func(int a,int b)
{ return(a+b); }
main()
{ int x=2,y=5,z=8,r;
r=func((x-y),z); // r = x - y + z = 5
printf("%d\n",r); }
该程序的输出结果是__________。
A) 10 B) 13
C) 5 D) 15
请选择-> A B C D
3、 请读程序:
#include <stdioh>
f(char s[ ])
{ int i=0,p=0;
while(s[i++]!='\0') p++;
return(p); } // 求字符串s的长度
main()
{ char str[10]= "ABCDEF";
printf("%d\n",f(str));}
上面程序的输出结果是 // ABCDEF总共6个字符
A) 3 B) 6
C) 8 D) 10
请选择-> A B C D
4、 请读程序:
#include <stdioh>
f(int b[ ],int n)
{ int i,r;
r=1;
for (i=0;i<=n;i++) r=rb[i];
return r; }
main()
{ int x,a[]={3,4,5,6,7,8,9};
x=f(a,2); // b[0] b[1] b[2] = 60
printf("%d\n",x); }
上面程序的输出结果是________。
A) 720 B) 120
C) 60 D) 24
请选择-> A B C D
5、 下面程序的输出是________。
fun3(int x)
{int a=3;
a+=x;
return(a); }
main()
{int k=2,m=1,n;
n=fun3(k);
n=fun3(m); // n = 3 + m = 4
printf("%d\n",n); }
A) 3 B) 4
C) 6 D) 9
请选择-> A B C D
6、 设有如下的函数
ggg(x)
{float x;
printf("\n%d",xx);}
则函数的类型________。 // 默认是int类型
A) 与参数x的类型相同 B) 是void
C) 是int D) 无法确定
请选择-> A B C D
7、 以下程序的输出结果是________。
int a,b;
void fun()
{ a=100; b=200; }
main()
{ int a=5,b=7;
fun();
printf("%d%d\n",a,b); } // 打印的是局部变量 5和7
A) 100200 B) 57
C) 200100 D) 75
请选择-> A B C D
8、 以下叙述中,不正确的是________。
A) 使用static float a定义的外部变量存放在内存中的静态存储区
B) 使用float b定义的外部变量存放在内存中的动态存储区
C) 使用static float c定义的内部变量存放在内存中的静态存储区
D) 使用float d定义的内部变量存放在内存中的动态存储区
请选择-> A B C D
// A对,C对,B错,D对
9、 下面程序的输出是________。
int m=13;
int fun2(int x, int y)
{ int m=3;
return(xy-m); }
main()
{ int a=7, b=5;
printf("%d\n",fun2(a,b)/m);}
// fun2(a,b) = 7 5 - 3 = 32
// m = 13
// 32 / 13 = 2
A) 1 B) 2
C) 7 D) 10
请选择-> A B C D
10、 设有如下定义:
char aa[2][20]={ "abcd", "ABCD"};
则以下说法中错误的是________。
A) aa是个二维数组,可以存放2个19个字符以下的字符串
B) aa是个二维数组,每行中分别存放了字符串"abcd"和"ABCD"
C) aa[0]可以看作是一维数组名
D) aa[0][0]可以看作是一维数组名
请选择-> A B C D
// A对,B对,C对,D错
二1、 在C语言中,全局变量的存储类别是: (a)
A) static B) extern
C) void D) register
2、 有如下函数调用语句 func(rec1,rec2+rec3,rec4,rec5);
该函数调用语句中,含有的实参个数是(B)
A) 3 B) 4
C) 5 D) 有语法错误
3、 以下函数返回a数组中最小值所在的下标,在划线处应
填入的是________。(D)
fun( int a[],int n)
{ int i,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p])_______________;
return (p); }
A) i=p B) a[p]=a[i]
C) p=j D) p=i
4、 下列程序的输出结果是________。(D)
int t(int x,int y,int cp,int dp)
{ cp=xx+yy; dp=xx-yy; }
main()
{ int a=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d %d\n",c,d); }
A) 16 9 B) 4 3
C) 5 6 D) 25 9
5、 请读程序:
#include <stdioh>
f(int b[ ],int n)
{ int i,r;
r=1;
for (i=0;i<=n;i++) r=rb[i];
return r; }
main()
{ int x,a[]={3,4,5,6,7,8,9};
x=f(a,2);
printf("%d\n",x); }
上面程序的输出结果是________。(C)
A) 720 B) 120
C) 60 D) 24
6、 以下程序的输出结果是________。(B)
int a,b;
void fun()
{ a=100; b=200; }
main()
{ int a=5,b=7;
fun();
printf("%d%d\n",a,b); }
A) 100200 B) 57
C) 200100 D) 75
7、 函数f的功能是:测定字符串的长度,空白处应填入________。(C)
int f(char s[ ])
{ int i=0;
while(s[i]!='\0') i++;
return (________); }
main( )
{ printf("%d\n",f("goodbye!")); }
A) i-1 B) i
C) i+1 D) s
8、 请读程序:
#include<stdioh>
f(char s[ ])
{ int i,j;
i=0;j=0;
while( s[ j]!= '\0') j++;
return (j-i); }
main()
{printf("%d\n",f("ABCDEF"));}
上面程序的输出结果是________。(B)
A) 0 B) 6
C) 7 D) 8
9、 下面程序的输出是________。(B)
int m=13;
int fun2(int x, int y)
{ int m=3;
return(xy-m); }
main()
{ int a=7, b=5;
printf("%d\n",fun2(a,b)/m);}
A) 1 B) 2
C) 7 D) 10
10、 以下叙述中错误的是________。(C)
A) 在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值
B) 在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C) 在C中,外部变量的隐含类别是自动存储类别
D) 在C中,函数中的静态变量可以赋初值,只在编译时赋一次初值
main()
{ int k, a[10]={1,2,3,4,5};
for(k=1; k<3; k++) fun(a);
for(k=0; k<5; k++) printf("%d", a[k]);
}
上面程序的输出结果是
A34756
B23445
C35743
D12345
(40) 请读程序:
#include
#define SUB(X,Y) (X)Y
main()
{ int a=3, b=4;
printf("%d", SUB(a++, b++));
}
上面程序的输出结果是
A12
B15
C16
D20(41) 请读程序:
#include
main()
{ int mun=0;
while(num<=2)
{ num++; printf("%d\n",num);}
}
上面程序的输出结果是
A1
B1
C1
D1
2 2 2
3 3
4
(42) 请读程序:
#include
main()
{ float x,y;
scan("%f",&x);
if(x<00) y=00
else if((x<50)&&(x!=20))
y=10/(x+20);
else if (x<100) y=10/x;
else y=100;
printf("%f\n",y);
}
若运行时从键盘上输入20(表示回车),则上面程序的输出结果是
A0000000
B0250000
C0500000
D1000000
(43) 请读程序:
#include
main()
{ int x=1, y=0, a=0, b=0;
switch(x)
{ case 1:
switch(y)
{ case 0: a++;break;
case 1: b++;break;
}
case 2:
a++; b++; break;
}
printf("a=%d, b=%d\n",a,
B;
}
上面程序的输出结果是
Aa=2, b=1
Ba=1, b=1
Ca=1, b=0
Da=2, b=2
(44) 若有下面的程序片段:
int a[12]={0}, p[3], pp, i;
for(i=0; i<3; i++)
p[i]=&a[i4];
pp=p;
则对数组元素的错误引用是
App[0][1]
Ba[10]
Cp[3][1]
D((p+2)+2)
(45) 请读程序:
#include
#include
main()
{ float x,y,z;
scan("%f%f",&x,&y);
z=x/y;
while(1)
{ if(fabs(z)>10)
{ x=y; y=z; z=x/y;
}
else break
}
printf("%f\n",y);
}
若运行时从键盘上输入36 24(表示回车),则输出的结果是
A1500000
B1600000
C2000000
D2400000
(46) 请读程序:
#include
f(in b[], int n)
{ int i, r;
r=1;
for(i=0; i<=n; i++) r=rb[i];
return r;
}
main()
{ int x, a[]={ 2,3,4,5,6,7,8,9};
x=f(a, 3);
printf("%d\n",x);
}
上面程序的输出结果是
A720
B120
C24
D6
(47) 请读程序:
#include
#include
void fun( char s)
{ char a[10];
strcpy( a, "STRING");
s=a;
}
main()
{ char p;
fun(p);
x=f(a, 3);
printf("%s\n",p);
}
上面程序的输出结果是(└┘表示空格)
ASTRING└┘└┘└┘└┘
BSTRING
CSTRING└┘└┘└┘
D不确定的值
(48) 若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是
As->next=NULL; p=p->next; p->next=s;
Bp=p->next; s->next=p->next; p->next=s;
Cp=p->next; s->next=p; p->next=s;
Dp=(p)next; (s)next=(p)next; (p)next=s;
(49) 请读程序:
#include
void fun(float pl, float p2, float s)
{ s=( float )calloc( 1, sizeof(float));
s=p1+ (p2++);
}
main()
{ float a[2]={11, 22}, b[2]={100, 200}, s=a;
fun(a, b, s)
printf("%f\n",s);
}
上面程序的输出结果是
A11100000
B12100000
C21100000
D1100000
(50) 请读程序:
#include
#include
void fun( char w, int m)
{ char s, p1, p2;
p1=w; p2=w+m-1;
while (p1{ s=p1++; p1=p2--; p2=s;}
}
main()
{ char a[]="ABCDEFG";
fun( a, strlen(a));
puts(a);
}
上面程序的输出结果是
AGFEDCBA
BAGADAGA
CAGAAGAG
DGAGGAGA
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡上1-20序号后的横线上,答在试卷上不得分。
(1) DOS命令分为内部命令与外部命令,XCOPY命令是 1 命令
(2) 为了列出当前盘当前目录中所有第三个字符为C的文件名的有关信息,应该用命令 2 。
(3) 设当前盘为A盘,当前目录为\X\Y,A盘上的一个文件QRC在当前目录下的子目录W中。现已将A盘的当前目录改为\D\XY,当前盘改为C盘,如需指定A盘上该文件应写成 3 。
(4) 用十六进制给存储器中的字节地址进行编号,其地址编号是从0000到FFFF,则该存储器的容量是4KB。
(5) 设有两个八位二进制数00010101与01000111相加,其结果的十进制表示为 5 。
(6) 数学式子 写成C语言表达式是 6 。
(7) 下面程序的输出结果是 7 。
#include
main()
{ static char b[]="Goodbye";
char chp=&b[7];
while( --chp >=&b[0]) putchar( chp);
putchar(’\n’);
}
(8) 下面程序的输出结果是 8 。
#include
void as( int x, int y, int cp, int dp)
{ cp=x+y;
dp=x-y;
}
main()
{ int a=4, b=3, c, d;
as( a, b, &c, &d);
printf( ’%d %d\n", c, d);
}
(9) 请读程序:
#include
main( int argc, char argv[])
{ int i;
printf( ’%d\n", argc);
for( i=0; i<=argc+1; i++) printf( "%s ", argv[i]);
printf("\n");
}
若上面的程序编译、连接后生成可执行文件ABCEXE,则输入以下命令行
abc file1 file2(表示回车)
程序执行后的输出结果是 9 。
(10) 条件“20(11) 设二进制数a是00101101,若想通过异或运算a^b使a的高4位取反,低4位不变,则二进制数b应是 11 。
(12) 若有以下说明和定义语句,则变量w在内存中所占的字节数是 12 。
union aa
{ float x, y;
char c[6];
};
struct st { union aa v; float w[5]; double ave; } w;
(13) 下面程序的输出结果是 13 。
#include
#define N 5
fun( char s, char a, int n)
{ int j;
s=a; j=n;
while( ereturn j;
}
main()
{ char s[N+1];
int k, p;
for( k=1; k<=N; k++)
s[k]=’A’+k+1;
printf( "%d\n", fun(s, ’E’, N));
}(14) 下面程序的输出结果是 14 。
#include
void fun( char a1, char a2, int n)
{ int k;
for( k=0; ka2[k]=( a1[k]-’A’-3+26)&+’A’;
a2[n]=’\0’;
}
main()
{ char s1[5]="ABCD", s2[5];
fun( s1, s2, 4);
puts( s2);
}
(15) 下面的findmax函数返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空。
findmax( int s[], int t)
{ int k, p;
for( p=0, k=p; pif( s[p]>s[k]) 15 。
return k;
}
(16) 下面程序的输出结果是 16 。
#include
fun( int x)
{ int p;
if( x==0||x==1) return(3);
p=x-fun( x-2);
return p;
}
main()
{ printf( "%d\n", fun(9));}
(17) 下面程序的输出结果是 17 。
#include
funa( int a, int b)
{ return a+b;}
funb( int a, int b)
{ return a-b;}
sub( int (t)(), int x, int y)
{ return((t)( x,y));}
main()
{ int x, (p)();
p=funa;
x=sub(p,9,3);
x+=sub(funb, 8, 3);
printf("%d\n", x);
}
(18) 下面程序的输出结果是 18 。
#include
main()
{ char p[]={ "BOOL", "OPK", "H", "SP"};
int i;
for(i=3; i>=0; i--,i--) printf( "%c", p[i]);
printf("\n");
}
(19) 为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是向结点的指针域),请填空。
data next
struct link { char data; 19 } node;
(20) 下面的程序用来统计文件中字符的个数,请填空。
#include
main()
{ FILE fp;
long num=0;
if(( fp=fopen("fnamedat","r"))==NULL)
{ printf( "Can’t open file! \n"); exit(0);}
while 20
{ fgetc(fp); num++;}
printf("num=%d\n", num);
fclose(fp);
}
参考答案一`选择题((1)~(40)题每题1分,(41)~(50)题每题2分,共60分)
(1)C (2)A (3)B (4)D (5)D (6)A (7)C (8)B (9)D (10)C
(11)B (12)D (13)A (14)C (15)B (16)A (17)B (18)A (19)C (20)C
(21)D (22)B (23)B (24)A (25)C (26)D (27)D (28)B (29)C (30)A
(31)B (32)B (33)D (34)C (35)A (36)C (37)A (38)B (39)C (40)A
(41)C (42)C (43)A (44)C (45)B (46)B (47)D (48)C (49)D (50)C
二` 填空题(每空2分,共40分)
(第(2)`(3)空允许小写或大小写混合使用,其它空均须与答案一样)
(1) 外部
(2) DIR C
(3) A:\X\Y\W\QRC
(4) 64
(5) 92
(6) pow(sin(x),2) (a+b)/(a-b) 或 sit(x) sit(x) (a+b)/(a-b)
(7) eybdooG
(8) 7 1
(9) 3 abcexe file1 file2 (注:两个答案,每个1分)
(10) ((20 (11) 11110000
(12) 34
(13) 3
(14) XYZA
(15) k=p
(16) 7
(17) 17
(18) SO
(19) struct link next
(20) (!feof(fp))或(feof(fp)==0)
以上就是关于c语言 请读程序: int x=10; int y=x++; printf("%d,%d",(x++,y),y++); 则上面程序的输出结果是___全部的内容,包括:c语言 请读程序: int x=10; int y=x++; printf("%d,%d",(x++,y),y++); 则上面程序的输出结果是___、请阅读以下程序,该程序、C语言作业——急求等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)