2009年c语言专升本考试题
答案:1 悬赏:40 手机版
解决时间 2021-12-01 06:48
- 提问者网友:感性作祟
- 2021-11-30 15:28
2009年c语言专升本考试题
最佳答案
- 五星知识达人网友:何以畏孤独
- 2021-11-30 15:39
2012成人高考专升本考试
考试介绍考试大纲政治英语大学语文
21
、
有定义如下,
s
truct student{
char name[10];
float score;
int age;
}stu1,*p;
则如下程序段正确的是()
。
A. stu1={
“
ddd
”
,66.0,55};
B. strcpy(stu1.name,
”
ddd
”
);
stu1.score=66.0;
stu1.age=15;
C. p=&stu1;
p->name=
‟
ddd
‟
;
p->score=66.0; p->age=15;
D. p=&stu1;
p->name=
”
ddd
”
;
p->score=66.0; p->age=15;
22
、
如下程序段语法正确的是()
。
A. int mm(
int x,int y
){
int x,y
;return x+y;}
局部变量不能与形参重名
B. char str[10];scanf(
“
%s
”
,
&
str);
输入字符数组不能加
&
C. int i,a[10];
for(i=0;i<
=
10;i++)scanf(
“
%d
”
,&a[i]);
数组下标从
0
开始
D. int i,a[10],*p;
for(i=0, p=a; p“
%d
”
,p);
23
、
已知
int a;
并且
a
已经被正确赋值,则下列逻辑表达式与
(!a)
等价的是()
。
A. (a==0)
(!a)
成立表示
a
不成立,
C
语言不成立用
0
表示,即
a==0
B. (a>0)
C. !(a==1)
D. (a==1)
24
、
若变量已经定义,要求程序从
1
累加到
100
,下列选项
不
能完成此功能的是()
。
A. for(i=1,sum=0;i<=100;i++) sum=sum+i;
B. i=1;sum=0;while(i++<=100) sum=sum+i;
C. for(i=1,sum=0;i<=100;i++){sum=0; sum=sum+i;}
D. i=1;sum=0;do{ sum=sum+i;} while(++i<=100);
25
、
已知
int k;
且
k
已经正确赋值,则下列表达式中存在错误的是()
。
A. 2 B. (k<6)++
C. k<6&&k>2
D. k==1
2 虽然语法正确,但是不是表示
k<6&&k>2
,而是表示
(2 ,不管
k
等于多少,
2 要
么成立
(1)
,要么不成立
(0)
,即
0
或
1
都小于
6
,也就是说
2 永远成立(
1
)
。
26
、
如下程序段的运行结果是()
。
main()
{
int i, j, a=0;
for(i=1;i<=5;i++)
for(j=i;j<=5;j++)
a=a+j;
printf (
“
%d
”
, a);
}
A. 10
B. 25
C. 55
D. 75
A=0
i=1
j=1 a=1
j=2 a=3
j=3 a=6
j=4 a=10
j=5 a=15
i=2
j=2 a=17
j=3 a=20
j=4 a=24
j=5 a=29
i=3
j=3 a=32
j=4 a=36
j=5 a=41
i=4
j=4 a=45
j=5 a=50
i=5
j=5 a=55
27
、
语句语句
printf(
“
%-8.4d
”
, -36);
的运行结果是()
。
A. -036
□□□□
B. -036
□□□□□
C.
□□□□
-036
D.
□□□□□
-036
%-8.4d
%d
表示输出整数
-
表示靠左对齐
8
表示占
8
个字符位置
.4
表示小数点后位置数,没有小数,则填空格
28
、
如下程序段的运行结果是()
。
main()
{
int
a[10] = {34, 22, 12, 66, 8, 33, 22, 338, 56, 99};
int
i,
x=0;
for(i=1; i<10; i++)
if (a[i] < a[x]) x = i;
printf (
“
%d
”
, a[x]);
}
选出数组中的最小值,
x
是最小值的下标。
A. 8
B. 34
C. 99
D. 338
29
、
如下程序段的运行结果是()
。
main()
{
char
str[] = {
„
s
‟
,
‟
t
‟
,
‟
u
‟
,
‟
d
‟
,
‟
e
‟
,
‟
n
‟
,
‟
t
‟
,
‟
\0
‟
};
char *q=str;
while(*q!=
‟
\0
‟
)q++;
printf (
“
%d
”
, q-str);
}
A. 5
B. 6
C. 7
D. 8
计算数组中非
0
字符的个数。
30
、
如下程序段的运行结果是()
。
#define
n
5
struct student{
int no;
float score;
};
main(){
struct student str[n]={
{1,12.5},
{2,55.5},
{3,90.5},
{4,78.0},
{5,34.0}
};
int
i; float a=0, b;
for(i=0; i
b=a/n;
printf(
“
%08.4f
”
, b);
}
A. 0054.1000
B. 054.1000
C. 0054.1
D. 54.10000
二、
程序阅读题(
4
小题,每小题
5
分,共
20
分)
31
、
#include
void main(){
char str1[]=
”
good morning
”
, str2[20];
char *p, *q;
for (p=str1; *p!=
‟
\0
‟
; p++);
for (q=str2; --p>=str1; q++)*q=*p;
*q=
‟
\0
‟
;
printf(
“
%s
”
, str2);
}
p
先走到
str1
的尾部,然后从尾部向头部退
同时
q
从
str2
头部开始向尾部走,
边走边复制字符,
最后将
str1
的内容反过来放到
str2
中。
打印结果是
gninrom doog
32
、
#include
#define
n
10
void de(int a[], int x, int *m) {
int i=x+1;
for (; i<=*m; i++) a[i-1]=a[i];
*m=*m-1;
}
void main(){
static int a[n]= {32,12, 12, 56, 78, 12,78, 5, 32, 12};
int i, j, x, m=n-1;
for (i=0; i<=m; i++);
{ x=a[i];
for(j=i+1; j<=m; j++)
if(a[j]==x)de(a,j,&m);
}
for (i=0; i<=m; i++);
printf(
“
%d
”
, a[i]);
}
25637
33
、
#include
void ch(int *a, int *b) {
int c;
c=*a; *a=*b; *b=c;
}
void main(){
static int a[10]= {32,5, 18, 56, 98, 52,78, 15, 132,112};
int x=0,
y=1, i;
if (a[x]>a[y])ch(&x, &y);
for(i=2;i<10; i++);
if(a[i]
else if(a[i]>a[y]) y=i;
ch(&a[x], &a[y]);
for(i=0; i<10; i++) printf(
“
%d,
”
, a[i]);
}
原来数组:
32,5, 18, 56, 98, 52,78, 15, 132,112
最后结果:
32,
132
, 18, 56, 98, 52,78, 15,
5
,112
34
、
#include
void main(){
char str[]=
”
0342201411
”
;
static int
a[10];
int i;
char *p;
for (i=0; i<10; i++) a[ i ] = 0;
for (p=str; *p!=
‟
\0
‟
; p++) {
i=*p-
„
0
‟
;
a[i]++;
}
for(i=0;i<10;i++) printf(
“
%d
”
, a[i]);
}
a[i]
开始全是
0
。
p
从
str
的头部开始向尾部走,
i
是
str[]
的字符对应的数字,将
a[i]++;
注意
str
数组是
0342201411
其中有
2
个
0
,故
a[0]=2
其中有
1
个
3
,故
a[3]=1
其中有
2
个
4
,故
a[4]=2
其中有
2
个
2
,故
a[2]=2
其中有
3
个
1
,故
a[1]=3
没有比
4
大的数字,故
a[5-9]
保持
0
最后结果:
2321200000
三、
程序填空题(
2
小题,每空
4
分,共
20
分)
35
、下面程序求出二维数组的最大值
#include
#define m
3
#define n
4
int
findmax(int a[][n])
{ int
i, j, max=a[0][0];
for(i=0; i i++
____)
for(j=0; j
j++)
if ( a[i][j]>max) max=a[i][j];
_____(2)
return max
____________;
}
void main(){
int
i , j, max,
_____(3)a[m][n]_____;
for(i=0; i
for(j=0; j
j++)
scanf(
“
%d
”
, &a[i][j]);
max=findmax(a);
printf(
“
%d
”
, max);
}
36
、下面程序求出
100-200
之间的全部素数
#include
void main(){
int
m, k, i;
for(m=101; m<=200; m=m+2)
{
k=sqrt(m);
for(i=2; i<=k; __
(4)i++
____)
if(m%i==0) __
(5)break
_______;
if(i>k) printf(
“
%d
”
, m);
}
}追问看不懂
考试介绍考试大纲政治英语大学语文
21
、
有定义如下,
s
truct student{
char name[10];
float score;
int age;
}stu1,*p;
则如下程序段正确的是()
。
A. stu1={
“
ddd
”
,66.0,55};
B. strcpy(stu1.name,
”
ddd
”
);
stu1.score=66.0;
stu1.age=15;
C. p=&stu1;
p->name=
‟
ddd
‟
;
p->score=66.0; p->age=15;
D. p=&stu1;
p->name=
”
ddd
”
;
p->score=66.0; p->age=15;
22
、
如下程序段语法正确的是()
。
A. int mm(
int x,int y
){
int x,y
;return x+y;}
局部变量不能与形参重名
B. char str[10];scanf(
“
%s
”
,
&
str);
输入字符数组不能加
&
C. int i,a[10];
for(i=0;i<
=
10;i++)scanf(
“
%d
”
,&a[i]);
数组下标从
0
开始
D. int i,a[10],*p;
for(i=0, p=a; p“
%d
”
,p);
23
、
已知
int a;
并且
a
已经被正确赋值,则下列逻辑表达式与
(!a)
等价的是()
。
A. (a==0)
(!a)
成立表示
a
不成立,
C
语言不成立用
0
表示,即
a==0
B. (a>0)
C. !(a==1)
D. (a==1)
24
、
若变量已经定义,要求程序从
1
累加到
100
,下列选项
不
能完成此功能的是()
。
A. for(i=1,sum=0;i<=100;i++) sum=sum+i;
B. i=1;sum=0;while(i++<=100) sum=sum+i;
C. for(i=1,sum=0;i<=100;i++){sum=0; sum=sum+i;}
D. i=1;sum=0;do{ sum=sum+i;} while(++i<=100);
25
、
已知
int k;
且
k
已经正确赋值,则下列表达式中存在错误的是()
。
A. 2
C. k<6&&k>2
D. k==1
2
k<6&&k>2
,而是表示
(2
k
等于多少,
2
么成立
(1)
,要么不成立
(0)
,即
0
或
1
都小于
6
,也就是说
2
1
)
。
26
、
如下程序段的运行结果是()
。
main()
{
int i, j, a=0;
for(i=1;i<=5;i++)
for(j=i;j<=5;j++)
a=a+j;
printf (
“
%d
”
, a);
}
A. 10
B. 25
C. 55
D. 75
A=0
i=1
j=1 a=1
j=2 a=3
j=3 a=6
j=4 a=10
j=5 a=15
i=2
j=2 a=17
j=3 a=20
j=4 a=24
j=5 a=29
i=3
j=3 a=32
j=4 a=36
j=5 a=41
i=4
j=4 a=45
j=5 a=50
i=5
j=5 a=55
27
、
语句语句
printf(
“
%-8.4d
”
, -36);
的运行结果是()
。
A. -036
□□□□
B. -036
□□□□□
C.
□□□□
-036
D.
□□□□□
-036
%-8.4d
%d
表示输出整数
-
表示靠左对齐
8
表示占
8
个字符位置
.4
表示小数点后位置数,没有小数,则填空格
28
、
如下程序段的运行结果是()
。
main()
{
int
a[10] = {34, 22, 12, 66, 8, 33, 22, 338, 56, 99};
int
i,
x=0;
for(i=1; i<10; i++)
if (a[i] < a[x]) x = i;
printf (
“
%d
”
, a[x]);
}
选出数组中的最小值,
x
是最小值的下标。
A. 8
B. 34
C. 99
D. 338
29
、
如下程序段的运行结果是()
。
main()
{
char
str[] = {
„
s
‟
,
‟
t
‟
,
‟
u
‟
,
‟
d
‟
,
‟
e
‟
,
‟
n
‟
,
‟
t
‟
,
‟
\0
‟
};
char *q=str;
while(*q!=
‟
\0
‟
)q++;
printf (
“
%d
”
, q-str);
}
A. 5
B. 6
C. 7
D. 8
计算数组中非
0
字符的个数。
30
、
如下程序段的运行结果是()
。
#define
n
5
struct student{
int no;
float score;
};
main(){
struct student str[n]={
{1,12.5},
{2,55.5},
{3,90.5},
{4,78.0},
{5,34.0}
};
int
i; float a=0, b;
for(i=0; i
b=a/n;
printf(
“
%08.4f
”
, b);
}
A. 0054.1000
B. 054.1000
C. 0054.1
D. 54.10000
二、
程序阅读题(
4
小题,每小题
5
分,共
20
分)
31
、
#include
void main(){
char str1[]=
”
good morning
”
, str2[20];
char *p, *q;
for (p=str1; *p!=
‟
\0
‟
; p++);
for (q=str2; --p>=str1; q++)*q=*p;
*q=
‟
\0
‟
;
printf(
“
%s
”
, str2);
}
p
先走到
str1
的尾部,然后从尾部向头部退
同时
q
从
str2
头部开始向尾部走,
边走边复制字符,
最后将
str1
的内容反过来放到
str2
中。
打印结果是
gninrom doog
32
、
#include
#define
n
10
void de(int a[], int x, int *m) {
int i=x+1;
for (; i<=*m; i++) a[i-1]=a[i];
*m=*m-1;
}
void main(){
static int a[n]= {32,12, 12, 56, 78, 12,78, 5, 32, 12};
int i, j, x, m=n-1;
for (i=0; i<=m; i++);
{ x=a[i];
for(j=i+1; j<=m; j++)
if(a[j]==x)de(a,j,&m);
}
for (i=0; i<=m; i++);
printf(
“
%d
”
, a[i]);
}
25637
33
、
#include
void ch(int *a, int *b) {
int c;
c=*a; *a=*b; *b=c;
}
void main(){
static int a[10]= {32,5, 18, 56, 98, 52,78, 15, 132,112};
int x=0,
y=1, i;
if (a[x]>a[y])ch(&x, &y);
for(i=2;i<10; i++);
if(a[i]
else if(a[i]>a[y]) y=i;
ch(&a[x], &a[y]);
for(i=0; i<10; i++) printf(
“
%d,
”
, a[i]);
}
原来数组:
32,5, 18, 56, 98, 52,78, 15, 132,112
最后结果:
32,
132
, 18, 56, 98, 52,78, 15,
5
,112
34
、
#include
void main(){
char str[]=
”
0342201411
”
;
static int
a[10];
int i;
char *p;
for (i=0; i<10; i++) a[ i ] = 0;
for (p=str; *p!=
‟
\0
‟
; p++) {
i=*p-
„
0
‟
;
a[i]++;
}
for(i=0;i<10;i++) printf(
“
%d
”
, a[i]);
}
a[i]
开始全是
0
。
p
从
str
的头部开始向尾部走,
i
是
str[]
的字符对应的数字,将
a[i]++;
注意
str
数组是
0342201411
其中有
2
个
0
,故
a[0]=2
其中有
1
个
3
,故
a[3]=1
其中有
2
个
4
,故
a[4]=2
其中有
2
个
2
,故
a[2]=2
其中有
3
个
1
,故
a[1]=3
没有比
4
大的数字,故
a[5-9]
保持
0
最后结果:
2321200000
三、
程序填空题(
2
小题,每空
4
分,共
20
分)
35
、下面程序求出二维数组的最大值
#include
#define m
3
#define n
4
int
findmax(int a[][n])
{ int
i, j, max=a[0][0];
for(i=0; i
____)
for(j=0; j
j++)
if ( a[i][j]>max) max=a[i][j];
_____(2)
return max
____________;
}
void main(){
int
i , j, max,
_____(3)a[m][n]_____;
for(i=0; i
for(j=0; j
j++)
scanf(
“
%d
”
, &a[i][j]);
max=findmax(a);
printf(
“
%d
”
, max);
}
36
、下面程序求出
100-200
之间的全部素数
#include
void main(){
int
m, k, i;
for(m=101; m<=200; m=m+2)
{
k=sqrt(m);
for(i=2; i<=k; __
(4)i++
____)
if(m%i==0) __
(5)break
_______;
if(i>k) printf(
“
%d
”
, m);
}
}追问看不懂
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯