C语言作业问题
我想自己写但是不知道答案希望高手把答案告诉我下!我写完了在对下谢谢!一.单项选择题。1.假定变量a和pa定义为“doublea[10],*pa=a;”,要将12.35赋值...
我想自己写 但是不知道答案希望高手把答案告诉我下!我写完了在对下 谢谢!
一.单项选择题。
1. 假定变量a和pa定义为“double a[10], *pa=a;”,要将12.35赋值给数组a中的下标为5的元素,不正确的语句是( )。
A. pa[5]=12.35; B. a[5]=12.35; C.*(pa+5)=12.35; D.*(a[0]+5)=12.35;
2. 假定有定义“int b[10]; int *pb;”,则不正确的赋值语句为( )。
A.pb=b; B. pb=b[5]; C. pb=malloc(10); D. pb=&b[0];
3. 在C语言中,若有以下的定义:
int arr[ ]={1,2,3,4,5,6,7,8,9,10};
int *p=arr;
则不能表示数组arr中元素的表达式是( )。
A.*arr B.*p C.arr[p-arr] D.arr[10]
4. 有以下程序段
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5]; b中的值是( )。
A.5 B.6 C.8 D.9
5. 有如下C语言程序:
#include <stdio.h>
void main()
{
int array[10]={1,2,3,4,5,6,7,8,9,10}; int *ptr=array; int i;
for(i=0;i<10;i++)
{ (*ptr)++; ptr++; }
for(i=0;i<10;i++)
{ printf("%d ",ptr[i]); }}
则程序运行后的输出结果为( )。
A.1 2 3 4 5 6 7 8 9 10 B.0 1 2 3 4 5 6 7 8 9 C.2 3 4 5 6 7 8 9 10 11 D.以上选项都不对
6. 有如下C语言程序:
#include <stdio.h>
void f(int *x,int *y)
{ int t;
t=*x; *x=*y; *y=t;}
void main()
{ int a[8]={1,2,3,4,5,6,7,8}; t i,*p,*q; p=a; q=&a[7];
while(p<q)
{ f(p,q); p++; q--; }
for(i=0;i<8;i++)
printf("%d ",a[i]);}
则程序运行后的输出结果是( )。
A.8 2 3 4 5 6 7 1 B.5 6 7 8 1 2 3 4 C.1 2 3 4 5 6 7 8 D.8 7 6 5 4 3 2 1
7. 有如下C语言程序:
#include <stdio.h>
void main()
{ int i; int a[9]={9,8,7,6,5,4,3,2,1}; int *p=&a[2];
for( i=0; i<4; i+=2)
printf("%d ",p[i]);}
则其运行输出结果正确的是( )。
A.8 7 B.8 6 C.7 5 D.7 5 3
8. 设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( )。
A.scanf(“%d”,pa) ; B.scanf(“%d”,a) ; C.scanf(“%d”,&pa) ; D.scanf(“%d”,*pa) ;
9. C 语言中,若有说明
int n=2;
int m=3;
int *p=&n;
int *q=&m;
则下列选项中非法的赋值语句是( )。
A.p=q; B.*p=*q; C.n=*q; D.q=m;
10. C 语言中,若有如下定义
int a=228,*b=&a;
则printf("%d\n",*b);的输出结果为( )。
A.229 B.228 C.无确定值 D.变量a的地址
11. 有如下程序C程序:
#include <stdio.h>
void main()
{
int a[2][4]={1,3,5,7,2,4,6,8};
int res,*p;
p=&a[0][3];
res=(*(p+2))*(*(p-2));
printf("%d",res);
}
则其运行结果正确的是( )。
A.2 B.12 C. 30 D.56
二.程序填充题
1.用插入排序方法对table指针数组中size个指针所指向的字符串进行按升序排序的算法。
void sort(char *table[], int size){int i,j;
for(i=1,___(1)___; i++){
char *p=table[i];
for(j=i-1; j>=0 ; j--)
if(strcmp(p,table[j])<0) ___(2)___;
else break;
table[j+1]=___(3)___; }
}
(1) (2) (3) 展开
一.单项选择题。
1. 假定变量a和pa定义为“double a[10], *pa=a;”,要将12.35赋值给数组a中的下标为5的元素,不正确的语句是( )。
A. pa[5]=12.35; B. a[5]=12.35; C.*(pa+5)=12.35; D.*(a[0]+5)=12.35;
2. 假定有定义“int b[10]; int *pb;”,则不正确的赋值语句为( )。
A.pb=b; B. pb=b[5]; C. pb=malloc(10); D. pb=&b[0];
3. 在C语言中,若有以下的定义:
int arr[ ]={1,2,3,4,5,6,7,8,9,10};
int *p=arr;
则不能表示数组arr中元素的表达式是( )。
A.*arr B.*p C.arr[p-arr] D.arr[10]
4. 有以下程序段
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5]; b中的值是( )。
A.5 B.6 C.8 D.9
5. 有如下C语言程序:
#include <stdio.h>
void main()
{
int array[10]={1,2,3,4,5,6,7,8,9,10}; int *ptr=array; int i;
for(i=0;i<10;i++)
{ (*ptr)++; ptr++; }
for(i=0;i<10;i++)
{ printf("%d ",ptr[i]); }}
则程序运行后的输出结果为( )。
A.1 2 3 4 5 6 7 8 9 10 B.0 1 2 3 4 5 6 7 8 9 C.2 3 4 5 6 7 8 9 10 11 D.以上选项都不对
6. 有如下C语言程序:
#include <stdio.h>
void f(int *x,int *y)
{ int t;
t=*x; *x=*y; *y=t;}
void main()
{ int a[8]={1,2,3,4,5,6,7,8}; t i,*p,*q; p=a; q=&a[7];
while(p<q)
{ f(p,q); p++; q--; }
for(i=0;i<8;i++)
printf("%d ",a[i]);}
则程序运行后的输出结果是( )。
A.8 2 3 4 5 6 7 1 B.5 6 7 8 1 2 3 4 C.1 2 3 4 5 6 7 8 D.8 7 6 5 4 3 2 1
7. 有如下C语言程序:
#include <stdio.h>
void main()
{ int i; int a[9]={9,8,7,6,5,4,3,2,1}; int *p=&a[2];
for( i=0; i<4; i+=2)
printf("%d ",p[i]);}
则其运行输出结果正确的是( )。
A.8 7 B.8 6 C.7 5 D.7 5 3
8. 设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( )。
A.scanf(“%d”,pa) ; B.scanf(“%d”,a) ; C.scanf(“%d”,&pa) ; D.scanf(“%d”,*pa) ;
9. C 语言中,若有说明
int n=2;
int m=3;
int *p=&n;
int *q=&m;
则下列选项中非法的赋值语句是( )。
A.p=q; B.*p=*q; C.n=*q; D.q=m;
10. C 语言中,若有如下定义
int a=228,*b=&a;
则printf("%d\n",*b);的输出结果为( )。
A.229 B.228 C.无确定值 D.变量a的地址
11. 有如下程序C程序:
#include <stdio.h>
void main()
{
int a[2][4]={1,3,5,7,2,4,6,8};
int res,*p;
p=&a[0][3];
res=(*(p+2))*(*(p-2));
printf("%d",res);
}
则其运行结果正确的是( )。
A.2 B.12 C. 30 D.56
二.程序填充题
1.用插入排序方法对table指针数组中size个指针所指向的字符串进行按升序排序的算法。
void sort(char *table[], int size){int i,j;
for(i=1,___(1)___; i++){
char *p=table[i];
for(j=i-1; j>=0 ; j--)
if(strcmp(p,table[j])<0) ___(2)___;
else break;
table[j+1]=___(3)___; }
}
(1) (2) (3) 展开
5个回答
展开全部
楼上那位基本是对的,只是第二个没有看清要求,可以这样改:
int
main()
{
int
a,b;
void
num(int
a,int
b);
scanf("%d,%d",a,b);
num(a,b);
return
0;
}
void
num(int
a,int
b)
{
int
i,t;
int
mid;
srand((int)time(0));
if(a<b)
{t=a;a=b;b=t;}
while(1)
{
mid=rand();
if(mid>a
&&
mid<b)
{
printf("%d\t",i);
break;
}
else
continue;
}
}
int
main()
{
int
a,b;
void
num(int
a,int
b);
scanf("%d,%d",a,b);
num(a,b);
return
0;
}
void
num(int
a,int
b)
{
int
i,t;
int
mid;
srand((int)time(0));
if(a<b)
{t=a;a=b;b=t;}
while(1)
{
mid=rand();
if(mid>a
&&
mid<b)
{
printf("%d\t",i);
break;
}
else
continue;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、D
2、B
3、D
4、D
5、C
6、D
7、D
8、A
9、D
10、B
11、B
二、
我实在看晕了,对于这个 char *p=table[i] 是不是犯了重复定义的错误呢?
这真是原题吗?可能是我记错了?
2、B
3、D
4、D
5、C
6、D
7、D
8、A
9、D
10、B
11、B
二、
我实在看晕了,对于这个 char *p=table[i] 是不是犯了重复定义的错误呢?
这真是原题吗?可能是我记错了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、D
2、B
3、D
4、D
5、C
6、D
7、D
8、A
9、D
10、B
11、B
二.(1)i<size
(2)*p=table[j]
(3)table[i]
2、B
3、D
4、D
5、C
6、D
7、D
8、A
9、D
10、B
11、B
二.(1)i<size
(2)*p=table[j]
(3)table[i]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言比较难学,还是学E语言吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选择D,B,D,D,D,D,C,A,D,B,B
填空(1)i<=size(2)table[j+1]=table[j] (3)p
填空(1)i<=size(2)table[j+1]=table[j] (3)p
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询