您的位置:

c语言填空2答案,c语言填空题及答案

本文目录一览:

C语言试题及答案(2)

main()

{ int k, a[10]={1,2,3,4,5};

for(k=1; k3; k++) fun(a);

for(k=0; k5; k++) printf("%d", a[k]);

}

上面程序的输出结果是

A.34756

B.23445

C.35743

D.12345

(40) 请读程序:

#include

#define SUB(X,Y) (X)*Y

main()

{ int a=3, b=4;

printf("%d", SUB(a++, b++));

}

上面程序的输出结果是

A.12

B.15

C.16

D.20(41) 请读程序:

#include

main()

{ int mun=0;

while(num=2)

{ num++; printf("%d\n",num);}

}

上面程序的输出结果是

A.1

B.1

C.1

D.1

2 2 2

3 3

4

(42) 请读程序:

#include

main()

{ float x,y;

scan("%f",x);

if(x0.0) y=0.0

else if((x5.0)(x!=2.0))

y=1.0/(x+2.0);

else if (x10.0) y=1.0/x;

else y=10.0;

printf("%f\n",y);

}

若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是

A.0.000000

B.0.250000

C.0.500000

D.1.000000

(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.;

}

上面程序的输出结果是

A.a=2, b=1

B.a=1, b=1

C.a=1, b=0

D.a=2, b=2

(44) 若有下面的程序片段:

int a[12]={0}, *p[3], **pp, i;

for(i=0; i3; i++)

p[i]=a[i*4];

pp=p;

则对数组元素的错误引用是

A.pp[0][1]

B.a[10]

C.p[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)1.0)

{ x=y; y=z; z=x/y;

}

else break

}

printf("%f\n",y);

}

若运行时从键盘上输入3.6 2.4(表示回车),则输出的结果是

A.1.500000

B.1.600000

C.2.000000

D.2.400000

(46) 请读程序:

#include

f(in b[], int n)

{ int i, r;

r=1;

for(i=0; i=n; i++) r=r*b[i];

return r;

}

main()

{ int x, a[]={ 2,3,4,5,6,7,8,9};

x=f(a, 3);

printf("%d\n",x);

}

上面程序的输出结果是

A.720

B.120

C.24

D.6

(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);

}

上面程序的输出结果是(└┘表示空格)

A.STRING└┘└┘└┘└┘

B.STRING

C.STRING└┘└┘└┘

D.不确定的值

(48) 若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是

A.s-next=NULL; p=p-next; p-next=s;

B.p=p-next; s-next=p-next; p-next=s;

C.p=p-next; s-next=p; p-next=s;

D.p=(*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]={1.1, 2.2}, b[2]={10.0, 20.0}, *s=a;

fun(a, b, s)

printf("%f\n",*s);

}

上面程序的输出结果是

A.11.100000

B.12.100000

C.21.100000

D.1.100000

(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);

}

上面程序的输出结果是

A.GFEDCBA

B.AGADAGA

C.AGAAGAG

D.GAGGAGA

二、填空题(每空2分,共40分)

请将每空的正确答案写在答题卡上【1】-【20】序号后的横线上,答在试卷上不得分。

(1) DOS命令分为内部命令与外部命令,XCOPY命令是 【1】 命令

(2) 为了列出当前盘当前目录中所有第三个字符为C的文件名的有关信息,应该用命令 【2】 。

(3) 设当前盘为A盘,当前目录为\X\Y,A盘上的一个文件QR.C在当前目录下的子目录W中。现已将A盘的当前目录改为\D\XY,当前盘改为C盘,如需指定A盘上该文件应写成 【3】 。

(4) 用十六进制给存储器中的字节地址进行编号,其地址编号是从0000到FFFF,则该存储器的容量是【4】KB。

(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");

}

若上面的程序编译、连接后生成可执行文件ABC.EXE,则输入以下命令行

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("fname.dat","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\QR.C

(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 abc.exe 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)

2道C语言填空题,求帮助,急

1.

#includestdio.h

int move(int *arr,int n,int m)

{

int *p,array_end;

array_end=*(arr+n-1);

for(p=arr+n-1;parr;p--)

*p=*(p-1);

*arr=array_end;

m--;

if(m0) move(arr,n,m);

return *arr;

}

int main()

{

int number[20],n,m,i;

printf("the total numbers is:\n");

scanf("%d",n);

printf("back m:\n");

scanf("%d",m);

for(i=0;in-1;i++)

scanf("%d,",number[i]);

scanf("%d",number[n-1]);

move(number,n,m);

for(i=0;in-1;i++)

printf("%d,",number[i]);

printf("%d",number[n-1]);

}

---

2.

#include stdio.h

#include stdlib.h

int main()

{

int a,b,*p1,*p2;

p1=(int *)malloc(sizeof(int));

p2=(int*)malloc(sizeof(int));

scanf("%d%d",p1,p2);

if(*p2*p1) *p1=*p2;

free(p2);

printf("max=%d\n",*p1);

return 0;

}

2个C语言填空

1、正确答案D

原题中swap函数的两个参数分别是int p和int q,实际在主程序调用swap时,swap内部的赋值改变的只是参数值的副本,返回后主程序内部的a、b变量并没有因其副本内容的改变而变化,所以必须改写swap函数,将要交互的变量地址作为指针型的参数传给swap,才能在swap中直接修改main中的变量。

修改后的swap函数可以是:

swap( int *p, int *q )

{int t;

t=*p; *p=*q; *q=t;

}

因此原题中答案A明显错误。答案B虽然能去掉编译过程中的参数类型不匹配的警告,但运行结果是错误的(原因见上)。答案C错在不仅要改变形参中p、q的类型(int改为int*),还要相应改变swap函数内部的赋值语句。所以D是正确的。

2、正确答案A

malloc分配了一块20字节的内存、并通过赋值语句将指针p指向该内存区域,之后马上将q也指向这里,这就是说q和p指向的是同一块内存区域。

scanf会将输入的abc def按空白字符分解为abc和def两个部分,先将abc放入p指向的地方,然后再将def放入q指向的地方。然而p与q指向的是同一块内存区域,因此def会将之前的abc覆盖掉,导致输出了两次def,即def def。即选项A。

C语言二级填空题求解

#include stdio.h

#include string.h

#define N 5

#define M 8

void fun(char (*ss)[M])

{ char *ps[N],*tp; int i,j,k;

for(i=0; iN; i++) ps[i]=ss[i]; //改为指针操作

for(i=0; iN-1; i++) {

/**********found**********/

k= __1__ ;

for(j=i+1; jN; j++)

/**********found**********/

if(strlen(ps[k]) strlen(__2__) ) k=j;

//这里对比两个字符串的长度,看整个程序的算法设计是

//从第一个字符串开始,用这个字符串和后面的字符串相比较,

//如果这个字符串的长度比后面的小,则交换

//否则再取后面一个字符串比较

//所以这里的答案是: ps[j]

//而前面一个空中的答案是 i;

//这里可以对比一下后面第三空的内容

//试着想象一下有两个字符串的字符串数组的操作

//稍微复杂点的是三个字符串

//这个程序的设计有点问题,参数有冗余

/**********found**********/

tp=ps[i]; ps[i]=ps[k]; ps[k]= __3__ ; // ps[k]=tp;

//这里用一个临时变量,用于交换ps[i]指向的字符串和ps[k]指向的字符串

//和int a,b;的声明中,交换a、b的数值相同,采用临时变量先保存a,

//然后a赋值为b,结果a的值得到了交换。b的值而后赋值为原来的a,

//也就是那个临时变量。

}

printf("\nThe string after sorting by length:\n\n");

for(i=0; iN; i++) puts(ps[i]);

}

main()

{ char ch[N][M]={"red","green","blue","yellow","black"};

int i;

printf("\nThe original string\n\n");

for(i=0;iN;i++)puts(ch[i]); printf("\n");

fun(ch);

}

C语言填空题 求正确答案 感谢

  1 #include stdio.h

  2 typedef char * STR;

  3 

  4 int main(void)

  5 {

  6     STR s="helloworld!";

  7     printf("%s\n", s);

  8     printf("%d%d%d\n", -10-110, -10-10, -1010);

  9     int a[3][6];

 10     printf("sizeof(int):%d, sizeof(a[0]):%ld\n",sizeof(int), sizeof(a[0]));

 11     return 0;

 12 }

 13

运行结果如下:

zh@zh-CW65S:~/work$ gcc test.c

test.c: In function ‘main’:

test.c:10:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]

  printf("sizeof(int):%d, sizeof(a[0]):%ld\n",sizeof(int), sizeof(a[0]));

  ^

zh@zh-CW65S:~/work$ ./a.out 

helloworld!

000

sizeof(int):4, sizeof(a[0]):24

C语言填空题第二题

10 二进制00001010

1 00010100

1 00000001

101^1 00010101

八进制值是25

c语言填空2答案,c语言填空题及答案

2023-01-04
c语言题库及详解答案填空,c语言填空题题库

2022-11-25
大一c语言填空,C语言填空

2022-11-24
二级c语言笔试真题及答案下载,二级c语言笔试真题及答案下载

2023-01-05
c语言去哪找答案,c语言在哪里找答案

2023-01-05
c语言选项答案,c语言题目及答案

2022-11-24
c语言考试题及答案下载,c语言 题库

2022-11-30
c语言程序设计考试题及其答案,C语言程序设计考试答案

2023-01-05
软考c语言真题,软考c语言真题及答案

2022-11-23
c语言答案,c语言答案错误是什么原因

2022-11-25
搜c语言题咋搜,怎么搜c语言答案

本文目录一览: 1、有什么软件可以搜索大学C语言题目的啊? 2、菜鸟学c语言怎么搜题 3、c语言拍照搜题软件哪个好 4、c语言题库(适合大一计科新生的)怎么找 有什么软件可以搜索大学C语言题目的啊?

2023-12-08
搜c语言题咋搜,怎么搜c语言答案

本文目录一览: 1、有什么软件可以搜索大学C语言题目的啊? 2、菜鸟学c语言怎么搜题 3、c语言拍照搜题软件哪个好 4、c语言题库(适合大一计科新生的)怎么找 有什么软件可以搜索大学C语言题目的啊?

2023-12-08
知道c语言答案,c语言考试答案

2022-12-02
c语言程序设计试题及答案解析1,c语言程序设计考试题库答案

2023-01-06
c语言题与答案下载,c语言简答题和答案

2022-12-01
c语言编写答案,c语言编程答案

2023-01-07
c语言程序设计教程课本答案,案例c语言程序设计课本答案

2023-01-04
c语言程序设计结课测验答案,c语言程序设计实验教程答案

2022-11-29
二级c语言操作题技巧,二级c语言程序题技巧

2022-11-23
c语言程序设计题1答案,c语言程序设计题及答案

2023-01-07