
求救!!!一套c语言的试卷(2004年10月自考).
全国2004年10月高等教育自学考试高级语言程序设计(一)一、单项选择题11.若定义了x=100;,则表达式x++>100?x+20:x+10的值是()A.110B.11...
全国2004年10月高等教育自学考试高级语言程序设计(一)
一、单项选择题
11.若定义了x=100;,则表达式x++>100?x+20:x+10的值是( )
A.110 B.111
C.120 D.121
14.若定义了unsigned short a=32768;,则执行printf(〃a=%d〃,a);语句的输出结果是
( )
A. a=-32768 B. a=-1
C. a=32768 D.数据类型不一致,出错
15.若定义了int m,n=0,*p1=&m;,则下列与m=n;等价的正确语句是( )
A. m=*p1; B. *p1=&*n;
C. *&p1=&*n; D. *p1=*&n;
16.下列程序的运行结果是( )
main( )
{int a〔〕〔4〕={1,3,5,7,9,11,13,15,17,19,21,23};
int (*p)〔4〕,i=2,j=1;
p=a;
printf(〃%d\n〃,*(*(p+i)+j));
}
A.9 B.11 C.17 D.19
17.若有宏定义:#define MOD(x,y) x%y
则执行以下语句后的输出结果是
int a=13,b=94;
printf(〃%d\n〃,MOD(b,a+4));
A.5 B.7 C.9 D.11
18.若定义了( )
union
{ char a〔10〕;
short b〔4〕〔5〕;
long c〔5〕;
}u;
则执行printf(〃%d\n〃,sizeof(u));语句的输出结果是( )
A.10 B.20 C.40 D.70
19.若定义了( )
enum color
{yellow,green,blue=5,red,brone};
则枚举常量yellow和red的值分别是
A.0,3 B.0,6
C.1,6 D.3,6
20.若定义了( )
struct num
{ int a;int b;
}d〔3〕={{1,4},{2,5},{6,7}};
则执行printf(〃%d\n〃,d〔2〕.a*d〔2〕.b/d〔1〕.b);语句的输出结果是( )
A.2 B.2.5 C.8 D.8.4
二、填空题
23.表达式10<<3+1的值是 。
24.若定义了int a〔10〕,*p;,将数组元素a〔8〕的地址赋给指针变量p的赋值语句是 。
25.若定义了int a=1;,则执行printf(〃%d\n〃,((a=a+4,a+5),a+6));语句的输出结
果是 。
29.在C语言中,当定义一个函数的类型为void时,说明执行该函数后 。
30.若使用fopen函数打开一个新的二进制文件,对该文件进行读写操作,则文件使用方式字符串应该是 。
三、程序分析题
阅读下列程序,将输出结果写到各题右侧的空白处。
31.main( )
{
int a〔3〕〔3〕={1,4,17,3,6,19,2,5,18},i,s=0;
for (i=0;i<=2;i++)
s=s+a〔i〕〔2-i〕;
printf(〃s=%d\n〃,s);
}
32.main( )
{ int i;
for(i=0;i<5;i++)
switch(i%2)
{case 0:printf(〃1〃);break;
case 1:printf(〃0〃);
}
}
33.main( )
{
int x=20,y=40,*p;
p=&x;printf(〃%d,〃,*p);
*p=x+10;
p=&y;printf(〃%d\n〃,*p);
*p=y+20;
printf(〃%d,%d\n〃,x,y);
}
34.#include〃string.h〃
struct worker
{char name[15];
int age;
float pay;
};
main( )
{struct worket x;
char *t=〃Lilei〃;
int d=20;float f=100;
strcpy(x.name,t);
x.age=d*2;x.pay=f*d;
printf(〃%s\t%d\t%.0f\n〃,x.name, x.age,x.pay);
}
35.int f(int a)
{
int b=4
static int c=4
b++;
c++;
return(a+b+c);
}
main( )
{
int a=4,i;
for(i=0;i<3;i++)
printf(〃%4d〃,f(a));
}
五、程序设计题(第39小题5分,第40、41小题各6分,共17分)。
39.编写一个程序,用循环结构输出以下图形。(5分)
&&&&&&&&&
&&&&&&&
&&&&&
&&&
&
40.输入年份year,如果是闰年,则输出“ Yes!”,否则输出“ No!”。(每400年有97个闰
年,即在4的倍数年份中除去第100、200、300三个年份)(6分)
41.在主函数中定义两个双精度变量x,y,并输入。利用函数交换两个双精度数x,y,并且
要求函数的参数是指针类型。(6分) 展开
一、单项选择题
11.若定义了x=100;,则表达式x++>100?x+20:x+10的值是( )
A.110 B.111
C.120 D.121
14.若定义了unsigned short a=32768;,则执行printf(〃a=%d〃,a);语句的输出结果是
( )
A. a=-32768 B. a=-1
C. a=32768 D.数据类型不一致,出错
15.若定义了int m,n=0,*p1=&m;,则下列与m=n;等价的正确语句是( )
A. m=*p1; B. *p1=&*n;
C. *&p1=&*n; D. *p1=*&n;
16.下列程序的运行结果是( )
main( )
{int a〔〕〔4〕={1,3,5,7,9,11,13,15,17,19,21,23};
int (*p)〔4〕,i=2,j=1;
p=a;
printf(〃%d\n〃,*(*(p+i)+j));
}
A.9 B.11 C.17 D.19
17.若有宏定义:#define MOD(x,y) x%y
则执行以下语句后的输出结果是
int a=13,b=94;
printf(〃%d\n〃,MOD(b,a+4));
A.5 B.7 C.9 D.11
18.若定义了( )
union
{ char a〔10〕;
short b〔4〕〔5〕;
long c〔5〕;
}u;
则执行printf(〃%d\n〃,sizeof(u));语句的输出结果是( )
A.10 B.20 C.40 D.70
19.若定义了( )
enum color
{yellow,green,blue=5,red,brone};
则枚举常量yellow和red的值分别是
A.0,3 B.0,6
C.1,6 D.3,6
20.若定义了( )
struct num
{ int a;int b;
}d〔3〕={{1,4},{2,5},{6,7}};
则执行printf(〃%d\n〃,d〔2〕.a*d〔2〕.b/d〔1〕.b);语句的输出结果是( )
A.2 B.2.5 C.8 D.8.4
二、填空题
23.表达式10<<3+1的值是 。
24.若定义了int a〔10〕,*p;,将数组元素a〔8〕的地址赋给指针变量p的赋值语句是 。
25.若定义了int a=1;,则执行printf(〃%d\n〃,((a=a+4,a+5),a+6));语句的输出结
果是 。
29.在C语言中,当定义一个函数的类型为void时,说明执行该函数后 。
30.若使用fopen函数打开一个新的二进制文件,对该文件进行读写操作,则文件使用方式字符串应该是 。
三、程序分析题
阅读下列程序,将输出结果写到各题右侧的空白处。
31.main( )
{
int a〔3〕〔3〕={1,4,17,3,6,19,2,5,18},i,s=0;
for (i=0;i<=2;i++)
s=s+a〔i〕〔2-i〕;
printf(〃s=%d\n〃,s);
}
32.main( )
{ int i;
for(i=0;i<5;i++)
switch(i%2)
{case 0:printf(〃1〃);break;
case 1:printf(〃0〃);
}
}
33.main( )
{
int x=20,y=40,*p;
p=&x;printf(〃%d,〃,*p);
*p=x+10;
p=&y;printf(〃%d\n〃,*p);
*p=y+20;
printf(〃%d,%d\n〃,x,y);
}
34.#include〃string.h〃
struct worker
{char name[15];
int age;
float pay;
};
main( )
{struct worket x;
char *t=〃Lilei〃;
int d=20;float f=100;
strcpy(x.name,t);
x.age=d*2;x.pay=f*d;
printf(〃%s\t%d\t%.0f\n〃,x.name, x.age,x.pay);
}
35.int f(int a)
{
int b=4
static int c=4
b++;
c++;
return(a+b+c);
}
main( )
{
int a=4,i;
for(i=0;i<3;i++)
printf(〃%4d〃,f(a));
}
五、程序设计题(第39小题5分,第40、41小题各6分,共17分)。
39.编写一个程序,用循环结构输出以下图形。(5分)
&&&&&&&&&
&&&&&&&
&&&&&
&&&
&
40.输入年份year,如果是闰年,则输出“ Yes!”,否则输出“ No!”。(每400年有97个闰
年,即在4的倍数年份中除去第100、200、300三个年份)(6分)
41.在主函数中定义两个双精度变量x,y,并输入。利用函数交换两个双精度数x,y,并且
要求函数的参数是指针类型。(6分) 展开
3个回答
展开全部
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=5
32 10101
33 20,40,30,60
34 Lilei 40 2000.000000
35: 14 15 16(此踢要注意空格 每个数字前面都有 两个空格的)
39#include<stdio.h>
main()
{
int i,j;
for(i=9;i>=1;i=i-2)
{
for(j=0;j<i;j++)
printf("&");
printf("\n");
}
}
40#include<stdio.h>
main()
{
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#include<stdiio.h>
void 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~~~呵呵
23:0 ;24 p=&a[8]; 25 11; 29 无返回值 ;30 rb+;
31 s=5
32 10101
33 20,40,30,60
34 Lilei 40 2000.000000
35: 14 15 16(此踢要注意空格 每个数字前面都有 两个空格的)
39#include<stdio.h>
main()
{
int i,j;
for(i=9;i>=1;i=i-2)
{
for(j=0;j<i;j++)
printf("&");
printf("\n");
}
}
40#include<stdio.h>
main()
{
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#include<stdiio.h>
void 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~~~呵呵
展开全部
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=5
32
10101
33
20,40,30,60
34
Lilei
40
2000.000000
35:
14
15
16(此踢要注意空格
每个数字前面都有
两个空格的)
39#include<stdio.h>
main()
{
int
i,j;
for(i=9;i>=1;i=i-2)
{
for(j=0;j<i;j++)
printf("&");
printf("\n");
}
}
40#include<stdio.h>
main()
{
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#include<stdiio.h>
void
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~~~呵呵
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=5
32
10101
33
20,40,30,60
34
Lilei
40
2000.000000
35:
14
15
16(此踢要注意空格
每个数字前面都有
两个空格的)
39#include<stdio.h>
main()
{
int
i,j;
for(i=9;i>=1;i=i-2)
{
for(j=0;j<i;j++)
printf("&");
printf("\n");
}
}
40#include<stdio.h>
main()
{
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#include<stdiio.h>
void
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~~~呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询