文档库 最新最全的文档下载
当前位置:文档库 › C语言习题级答案6

C语言习题级答案6

C语言习题级答案6
C语言习题级答案6

测试题6

下面的程序片断所表示的数学函数关系是A

y = -1;

if(x != 0) y = 1;

if(x > 0) y = 1;

else y = 0;

A、

B、

C、

D、

以下程序段的输出结果是C

int i, j, m = 0;

for(i = 1; i <= 15; i += 4)

for(j = 3; j <= 19; j += 4)

m++;

printf(“%d\n”, m);

A、15

B、12

C、20

D、25

fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是(D)。

A、字符串读入后不会自动加入'\0'

B、fgets函数将从文件中最多读入n个字符

C、fp是file类型的指针

D、fgets函数将从文件中最多读入n-1个字符

下面说明不正确的是(A)。

A、char a[10],*p;p=a="china"

B、char a[10],*p=a;p="china"

C、char *a;a="china";

D、char a[10]="china";

若有int m=7,n=4;float a=38.4,b=6.4,x;,则执行下列语句后x的值为(D)。x=m/2+n*a/b+1/2;

A、27.500000

B、28.000000

C、28.500000

D、27.000000

C语言结构体类型变量在程序执行期间(C)。

A、部分成员驻留在内存中

B、只有一个成员驻留在内存中

C、所有成员一直驻留在内存中

D、没有成员驻留在内存中

char h,*s=&h;可将字符H通过指针存入变量h中的语句是(B)。

A、s='H'

B、*s='H';

C、s=H;

D、*s=H;

下面不正确的字符串常量是(B)。

A、"0"

B、'abc'

C、"12'12"

D、" "

函数调用:strcat(strcpy(str1,str2),str3)的功能是(B)

A、将串str1复制到串str2中后再连接到串str3之后

B、将串str2复制到串str1中后再将串str3连接到串str1之后

C、将串str1连接到串str2之后再复制到串str3之后

D、将串str2连接到串str1之后再将串str1复制到串str3中

设有定义语句char c1=92, c2=92;,则以下表达式中值为零的是C

A、c1|c2

B、c1&c2

C、c1^c2

D、~c2

在一个C程序中(B)。

A、main函数必须出现在固定位置

B、main函数可以在任何地方出现

C、main函数必须出现在所有函数之前

D、main函数必须出现在所有函数之后

有以下程序段

int n=0,p;

do

{

scanf("%d",&p);

n++;

}while(p!=12345&&n<3);

此处do-while循环的结束条件是__D____。

A、p的值等于12345并且n的值大于等于3

B、p的值不等于12345并且n的值小于3

C、p的值不等于12345或者n的值小于3

D、p的值等于12345或者n的值大于等于3

若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是D

A、a=b=c=100

B、d=(c=22)-(b++)

C、d++

D、c+b

在C语言中,引用数组元素时,其数组下标的数据类型允许是(D)。

A、任何类型的表达式

B、整型常量

C、整型表达式

D、整型常量或整型表达式

以下程序的输出结果是A

void sub(int x, int y, int *z)

{ *z = y - x; }

main()

{ int a, b, c;

sub(10, 5, &a); sub(7, a, &b); sub(a, b, &c);

printf(“%d, %d, %d\n”, a, b, c);

}

A、-5, -12, -7

B、-5, -12, -17

C、5, -2, -7

D、5, 2, 3

C语言中的文件类型只有(A)。

A、ASCII文件和二进制文件两种

B、二进制文件一种

C、文本文件一种

D、索引文件和文本文件两种

为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定:

else子句总是与(B)配对。

A、同一行上的if

B、其之前最近的if

C、其之后最近的if

D、缩排位置相同的if

C语言的switch语句中case后B

A、可为任何量或表达式

B、只能为常量或常量表达式

C、可为常量或表达式或有确定值的变量及表达式

D、只能为常量

C语言程序中必须有的函数是(C)。

A、printf

B、#include "stdio.h"

C、main

D、scanf

C语言中运算对象必须是整型的运算符是(D)。

A、=

B、/

C、〈=

D、%=

已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是(C)。

A、语法错

B、0

C、1

D、"假"

若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是A

A、scanf(“%d%d%d”, &a,&b,&c);

B、scanf(“%d%d%d”,a,b,c);

C、read(a,b,c)

D、scnaf(“%D%D%D”,&a,&b,&C);

打开文件时,方式“w”决定了对文件进行的操作是(D)。

A、追加写盘

B、可读可写盘

C、只读盘

D、只写盘

sizeof(float)是(D)。

A、一个浮点表达式

B、一个不合法的表达式

C、一种函数调用

D、一个整型表达式

若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是D

A、scanf(%8.4f”, &c);

B、scanf(%6.2f”, &c);

C、scanf(%f”,c)

D、scanf(%8f”, &c);

对 for(表达式1; ;表达式3) 可理解为(D)。

A、for(表达式1;表达式3;表达式3)

B、for(表达式1;表达式1;表达式3)

C、for(表达式1;0;表达式3)

D、for(表达式1;1;表达式3)

C语言中,double类型数据占(C)。

A、4个字节

B、1个字节

C、8个字节

D、2个字节

已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为(C)。char a='a'; a--;

printf("%d,%c\n",a+'2'-'0',a+'3'-'0');

A、98,c

B、格式描述和输出项不匹配,输出无定值

C、b,c

D、a--运算不合法,故有语法错

下述对C语言字符数组的描术中错误的是(C)

A、字符数组可以存放字符串

B、字符数组中的字符串可以整体输入、输出

C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D、不可以用关系运算符对字符数组中的字符串进行比较

以下标识符中,不能作为合法的C用户定义标识符的是(D)。

A、IF

B、_123

C、a3_b3

D、void

在Turbo C中,下面的定义和语句是合法的:

file *fp;fp=fopen("a.txt","r");N

int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列

的元素赋初值,其余元素值为0。Y

若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,

所以此宏定义是错误的。N

关系运算符<= 与 == 的优先级相同。N

结构体类型只有一种。N

C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式.N #define 和printf 都不是C语句。Y

在C语言中,语句str[3]='\0'等价于str[3]=0.Y

若有定义和语句:

inta;charc;floatf;scanf("%d,%c,%f",&a,&c,&f);

若通过键盘输入:

10,A,12.5,则a=10,c='A',f=12.5.Y

typedef可以定义生成新的数据类型.N

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:对任意输入的 x,用下式计算并输出 y 的值。

5 x<10

y= 0 x=10

-5 x>10

------------------------------------------------*/ #include

void VV();

int fun(int n)

{

/********** Begin **********/

/********** End ***********/

}

void main ()

{

intx,y;

printf("enter x:");

scanf("%d",&x);

y=fun(x);

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

VV();

}

void VV()

{

FILE *IN,*OUT;

int i;

intiIN;

longintiOUT;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("Please Verify The CurrerntDir..it May Be Changed"); }

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("Please Verify The Current Dir.. it May Be Changed"); }

for(i=0;i<5;i++)

{

fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%ld\n",iOUT);

}

fclose(IN);

fclose(OUT);

}

【参考代码】

int m;

if(n<10)

m=5;

else

if(n==10) m=0;

else m=-5;

return m;

===============

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:将1~lim中所有能被3整除的数存放在aa数组中,

在函数中返回元素的个数。

------------------------------------------------*/

#include

#include

#define M 100

void TestFunc();

int fun(intlim,intaa[M])

{

/*********Begin**********/

/********** End **********/ }

main()

{

intlimit,i,n;

intaa[M];

printf("Please input ainteger:"); scanf("%d",&limit);

n=fun(limit,aa);

for(i=0;i

printf("%5d",aa[i]);

TestFunc();

}

voidTestFunc()

{

inti,j,array[100],n,lim;

FILE *rf, *wf ;

rf = fopen("in.dat", "r") ;

wf = fopen("out.dat", "w") ;

for (j=0; j <= 5; j++)

{

fscanf(rf, "%d", &lim);

n=fun(lim,array);

for(i=0;i

fprintf(wf, "%7d", array[i]); fprintf(wf, "\n");

}

fclose(rf);

fclose(wf);

}

【参考代码】

int n=0;

int i;

for(i=1;i<=lim;i++)

if(i%3==0) aa[n++]=i;

return n;

===============

/*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:求出数组中最大数和次最大数,并把最大数和a[0]中的数

对调、次最大数和a[1]中的数对调。

------------------------------------------------------*/

#include

#include

#define N 20

int fun ( int * a, int n )

{

int i, m, t, k ;

for(i=0;i<2;i++)

{

/**********ERROR**********/

m=0;

/**********ERROR**********/

for(k=1;k

/**********ERROR**********/

if(a[k]>a[m]) k=m;

t=a[i];a[i]=a[m];a[m]=t;

}

}

main( )

{

int x, b[N]={11,5,12,0,3,6,9,7,10,8}, n=10, i;

clrscr( );

for ( i=0; i

printf("\n");

fun ( b, n );

for ( i=0; i

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

printf("\n");

【改错1】错误

【学生答案】

m=0;

【参考答案】

m=i;

============================================================

【改错2】错误

【学生答案】

for(k=1;k

【参考答案】

for(k=i;k

============================================================

【改错3】错误

【学生答案】

if(a[k]>a[m]) k=m;

【参考答案】

if(a[k]>a[m]) m=k;

/*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

题目:任意输入一个字符,如果是小写字母以大写字母输出,

是大写字母以小写字母输出;否则,按原样输出。

程序中共有4条错误语句,请改正错误。

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

#include

main()

charch;

printf("Enter ch:");

/**********ERROR**********/

ch=getchar(r);

/**********ERROR**********/

if(ch>=a&&ch<=z)

putchar(ch-32);

/**********ERROR**********/

else if(ch>=A&&ch<=Z)

putchar(ch+32);

/**********ERROR**********/

elseputchar();

}

【改错1】错误

【学生答案】

ch=getchar(r);

【参考答案】

ch=getchar();

============================================================

【改错2】错误

【学生答案】

if(ch>=a&&ch<=z)

【参考答案】

if(ch>=97&&ch<=122)

if(ch>='a'&&ch<='z')

============================================================

【改错3】错误

【学生答案】

else if(ch>=A&&ch<=Z)

【参考答案】

else if(ch>='A'&&ch<='Z')

else if(ch>=65&&ch<=90)

============================================================

【改错4】错误

【学生答案】

elseputchar();

【参考答案】

elseputchar(ch);

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

功能:打印出如下图案(菱形)

*

***

*****

*******

*****

***

*

-------------------------------------------------------*/

#include

main()

{

inti,j,k;

/**********FILL**********/

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

{

for(j=0;j<=4-i;j++)

printf(" ");

/**********FILL**********/

for(k=1;k<=_____;k++)

printf("*");

printf("\n");

}

/**********FILL**********/

for(_____;j<3;j++)

{

for(k=0;k

printf(" ");

for(k=0;k<5-2*j;k++)

printf("*");

printf("\n");

}

}

【空1】错误

【学生答案】

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

【参考答案】

i<=3

i<4

3>=i

4>i

============================================================

【空2】错误

【学生答案】

for(k=1;k<=_____;k++)

【参考答案】

2*i+1

i*2+1

1+2*i

1+i*2

============================================================

【空3】错误

【学生答案】

for(_____;j<3;j++)

【参考答案】

j=0

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

功能:编写程序,输出 1000 以内的所有完数及其因子。

说明:所谓完数是指一个整数的值等于它的因子之和。

例如“ 6 的因子是 1 、 2 、 3 ,而 6=1+2+3 ,故 6 是

一个完数。

-------------------------------------------------------*/ #include

main()

{

int i,j,m,s,k,a[100] ;

for(i=1 ; i<=1000 ; i++ )

{

m=i ; s=0 ; k=0 ;

for(j=1 ; j

/**********FILL**********/

if(_____)

{

s=s+j ;

/**********FILL**********/

_____=j ;

}

if(s!=0&&s==m)

{

/**********FILL**********/

for(j=0 ; _____ ; j++)

printf("%4d",a[j]) ;

printf(" =%4d\n",i) ;

}

}

}

【空1】错误

【学生答案】

if(_____)

【参考答案】

m%j==0

============================================================

【空2】错误

【学生答案】

_____=j ;

【参考答案】

a[k++]

============================================================

【空3】错误

【学生答案】

for(j=0 ; _____ ; j++)

【参考答案】

j

k>j

C语言程序设计第四版第六章答案-谭浩强

1、用筛选法求100之内的素数。解: #include #include int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0; for (i=2;i int main() {int i,j,min,temp,a[11]; printf("enter data:\n"); for (i=1;i<=10;i++)

{printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("The orginal numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); for (i=1;i<=9;i++) {min=i; for (j=i+1;j<=10;j++) if (a[min]>a[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf("\nThe sorted numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return 0; } 3、求一个3×3的整型矩阵对角线元素之和。解: #include int main() { int a[3][3],sum=0; int i,j; printf("enter data:\n"); for (i=0;i<3;i++) for (j=0;j<3;j++) scanf("%3d",&a[i][j]); for (i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum);

C语言题库及答案

C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

C语言习题及标准答案

习题一 【习题1-1】C语言源程序最多可能由________________部分组成? A) 预处理部分B)变量说明部分 C) 函数原型声明部分D)函数定义部分 【习题1-2】一个完整的C语言源程序最少必须有_______。 A)若干个主函数B)若干个函数 C)且只能有一个主函数D)一个函数 【习题1-3】C语言以函数为源程序的基本单位最主要有利于_______。 A)程序设计结构化B)程序设计模块化 C)程序设计简单化D提高程序设计有效性 【习题1-4】要使得C语言编写的程序能够在计算机上运行并得出正确结果,必须要先经过____________________________________ ___。 A)编辑和链接B)编译和链接 C)修改和运行D运行并输入数据 【习题1-5】选择一个C语言集成开发环境并启动它,然后分别输入【例1-1】、【例1-2】、【例1-3】的源程序,依次编译、链接、运行,看看能否达到预想的结果?从中了解程序的开发过程。 习题二 一、单项选择题 【习题2-1】已知’A’的ASCII代码是65,以下程序的输出结果是( )#include "stdio.h" main( ) { int c1=65,c2=66; printf("%c,%c",c1,c2); } A.因输出格式不合法,输出错误信息B.65,66 C.A,B????D.65,66 【习题2-2】若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是() A. a=a+b,b=a-b,a=a-b;??B.t=a,a=b,b=t; C.a=t,t=b,b=a; ??? D. t=b;b=a;a=t; 【习题2-3】若k是整型变量,则以下程序段的输出是( ) k=-8567; printf (“|%d|\n”,k);

C语言第六章习题带答案

练习6-1答案 一、选择题 1.已知函数abc的定义为: void abc() {……} 则函数定义中void的含义是( A )。 A.执行函数abc后,函数没有返回值B.执行函数abc后,函数不再返回C.执行函数abc后,可以返回任意类型 D.以上三个答案全是错误的 2.已知:int p();,p是( C )。 A.int型变量 B.函数p的调用 C.一个函数声明,该函数的返回值是int型的值 D.强制类型转换表达式中的变量 3.以下正确的函数形式是( D )。 A.double fun(int x, int y) B.fun(int x, y) { z=x+y; return z; } { int z; return z; } C.fun(x, y) D.double fun(int x, int y) { int x, y; double z; z=x+y; return z; } { double z; z=x+y; return z; } 4.以下说法正确的是( C )。 A.定义函数时,形参的类型说明可以放在函数体内 B.return后边的值不能为表达式 C.如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准 D.如果形参与实参的类型不一致,以实参类型为准 5.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )。 A.float 型B.int型C.long型D.double型6.下面函数调用语句含有实参的个数为( B )。 func((exp1, exp2), (exp3, exp4, exp5)); A.1 B.2 C.4 D.5 7.以下程序的功能是计算函数F(x, y, z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。 #include #include float f(float, float); main() {float x, y, z, sum; scanf("%f%f%f", &x, &y, &z); sum=f( ①B )+f( ②C ); (注:或者选择sum=f( ①C )+f( ②B )) printf("sum=%f\n", sum); } float f(float a, float b) {float value; value=a/b;

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

c语言新习题答案

习题答案 第1章 1.1填空题 1.1.1应用程序ONEFUNC.C 中只有一个函数,这个函数的名称是_main 。 1.1.2一个函数由函数头和函数体两部分组成。 1.1.3在C语言中,输入操作是由库函数_scanf完成的,输出操作是由库函数printf完 成的。 1.1.4通过文字编辑建立的源程序文件的扩展名是.c ;编译后生成目标程序文件,扩展 名是_.obL ;连接后生成可执行程序文件,扩展名是_.exe_ ;运行得到结果。 1.1.5C语言程序的基本单位或者模块是函数。 1.1.6C语言程序的语句结束符是_; ______ 。 1.1.7编写一个C程序,上机运行要经过的步骤: ____________________________________ 。1.1.8在一个C语言源程序中,注释部分两侧的分界符分别为_/*_和*/ 。 1.1.9C语言中的标识符只能由三种字符组成,它们是字母、数字和下划线。 且第一个字符必须为字母或下划线。 1.1.10C语言中的标识符可分为关键字、预定义标识符和用户标识符3类。 1.2选择题 1.2.1一个C程序的执行是从(A )。 A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 1.2.2以下叙述不正确的是(C)。 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)在C程序中,注释说明只能位于一条语句的后面 D)C程序的基本组成单位是函数 1.2.3C语言规定:在一个源程序中,main函数的位置(C )。 A)必须在程序的开头B)必须在系统调用的库函数的后面 C)可以在程序的任意位置D)必须在程序的最后 1.2.4C编译程序是(A)。 A)将C源程序编译成目标程序的程序 B)一组机器语言指令 C)将C源程序编译成应用软件 D)C程序的机器语言版本 1.2.5要把高级语言编写的源程序转换为目标程序,需要使用(D )。 A)编辑程序B)驱动程序C)诊断程序D)编译程序 1.2.6以下叙述中正确的是(C)。 A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行 C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚,具有其他语言的一切优点 1.2.7以下叙述中正确的是(A )。 A)C程序中注释部分可以出现在程序中任意合适的地方 B)花括号“{”和“}”只能作为函数体的定界符 C)构成C程序的基本单位是函数,所有函数名都可以由用户命名 D)分号是C语句之间的分隔符,不是语句的一部分

C语言课后习题答案(最终)

第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数: (1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数: (1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少? 答: 0~65535、-128~127、-32768~32767 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。 答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么? 答:

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言课后习题答案(完整版)-第四版-_谭浩强

C语言课后习题答案-第四版- 谭浩强(1-7) 第一章 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } #include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } #include #include int main()

{float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和 return 0; } #include #include int main() {double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和

最新c语言课后习题答案汇总

c语言课后习题答案

第二章习题 2.什么叫做结构化算法?为什么要提倡结构化算法? 答:结构化算法是由一些基本结构顺序组成的。在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本的结构范围内。一个非结构化的算法可以用一个等价的结构化算法代替,其功能不变。 跟结构化算法比较起来,非结构化算法有以下缺点: 流程不受限制的随意转来转去,使流程图豪无规律使人在阅读的时候难以理解算法的逻辑.难以阅读,也难以修改,从而使算法的可靠性和可维护性难以保证。 4. 第三章习题 1.#include #include void main() { unsigned int n;

float p,p1,r=0.09; scanf("%u",&n); p=pow(1+r,n); p1=(p-1)*100; printf("%5.2f%%\n",p1); } 运行结果:输入,回车,见结果: 2.#include #include int main() { int bj=1000; float r1,r2,r3,r5,r0,lx1,lx2,lx3,lx4,lx5; r1=0.0414; r2=0.0468; r3=0.0540; r5=0.0585; r0=0.0072; lx1=bj*r5; lx2=bj*(1+r2)*r3; lx3=bj*(1+r3)*r2; lx4=bj*pow(1+r1,5); lx5=bj*r0*5; printf("lx1=%f lx2=%f lx3=%f lx4=%f lx=5%f\n",lx1,lx2,lx3,lx4,lx5); return 0; } 运行结果: 3.#include #include int main() { long d,p; d=300000; p=6000; double m,r=0.01; m=log(p/(p-d*r))/log(1+r); printf("%4.2f",m); return 0;

大学C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学C语言考试题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题库吧。加油! 一单项选择题库 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C )。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

C语言全部章节习题集(参考答案)

第一章 C语言概述 一、选择题: 1、一个C程序的执行是从( A )。 A本程序的main函数开始,到main函数结束 B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束 [ 2、在 C 语言中,每个语句必须以( D )结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 3、C 语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 4、一个C 语言程序是由( B )。 ~ A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 5、下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 》 6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D. 自动保存源文件 二、填空题: 1、C 语言只有 32 个关键字和 9 种控制语句。 ~ 2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。 3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。 4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。 5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。 6、C 语言的标识符只能由字母、数字和下划线三种字符组成。

C语言第六章数组习题

C语言第六章数组习题 第六章数组 6.1 选择题 [题]在C语言中,引用数组元素时,其数组下标的数据类型允许是_____. A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 [题]以下对一维整型数组a的正确说明是_____。 A)int a(10);B)int n=10,a[n]; C)int n;D)#define SIZE 10 scanf(\%d,&n);int a[SIZE]; int a[n]; [题]若有说明:int a[l0];则对a数组元素的正确引用是_____。 A) a[10] B)a[3.5] C)a(5) D)a[10-10] [题]在C 语言中,一维数组的定义方式为:类型说明符数组名_____。 A)[常量表达式] B)[整型表达式] C)[整型常量]或[整型表达式] D)[整型常量] [题]以下能对一维数组a进行正确初始化的语句是_____。 A)int a[l0]=(0,0,0,0,0); B)int a[l0]={}; C)int a={0};D)int a[10]={10*1}; [题]以下对二维数组a的正确说明是_____。

1 A)int a[3]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); [题]若有说明:int a[3][4];则对a数组元素的正确引用是_____。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) [题]若有说明:int a[3][4];则对a数组元素的非法引用是_____。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] [题]以下不能对二维数组a进行正确初始化的语句是_____。 A)int a[2][3]={0}; B)int a[3]={{1,2},{0}}; C)int a[2][3]={{l,2},{3,4},{5,6}}; D)int a[3]={1,2,3,4,5,6}; [题]若有说明:int a[3][4]={0};则下面正确的叙述是_____。 A)只有元素a[0][0]可得到初值0 B)此说明语句不正确 C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0 [题]若有说明:int a[3][4];则数组a中各元素_____。 2

C语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

C语言综合习题及答案

C语言练习题 一、选择题 1. 一个完整的C源程序是【B 】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【C】。 A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【B】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main 函数中定义 C)在C语言程序中,函数的定义不能嵌套

D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【B 】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5.C程序的执行是从【A 】开始的。 A)主函数 B)子函数 C)从程序第一行 D)printf()函数 6.以下选项中不合法的标识符是【C 】 A)print B)FOR C)&a D)_00 7.以下选项中可作为C语言合法常量的是【A】 A)-80 B)-080 C)-8e1.0 D)-80.0e 8.以下选项中不属于字符常量的是【B】 A)′C′ B)"C" C)′\xCC′ D) ′\072′ 9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】 A)float B)long C)int D)double 10. 以下关于函数叙述中,错误的是【D】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 11. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是 【D】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 12.若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是【C】 A)a[2][!1] B)a[2][3] C)a[1>2][!1] D) a[0][3] 13.若有说明: int a[][4]={0,0};则下面不正确的叙述是【D】 A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1 C)因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1 D)有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 14.下列选项中错误的说明语句是【D】 A)char a[]={′t′,′o′,′y′,′o′,′u′,′\0′}; B)char a[]={"toyou\0"}; C)char a[]="toyou\0"; D)c har a[]=′toyou\0′; 15.char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是 A)strcat(a2,a1); B)strcpy(a2,a1); C)strcat(a1,a2); D)strcpy(a1,a2);

c语言 第6章作业

书面作业8 专业理科学号3120101717 姓名马凌浩 习题6 一、选择题 1.设float x=2.5, y=4.7; int a=7;,printf(“%.1f”, x+a%3*(int)(x+y)%2/4)的结果为 A 。 A.2.5 B.2.8 C.3.5 D.3.8 2.执行下列程序段的输出结果是 C 。 int a = 2; a += a *= a -= a *= 3; printf("%d", a); A.-6 B.12 C.0 D.2 3.设字符型变量x 的值是064,表达式“~ x ^ x << 2 & x”的值是 A 。 A.0333 B.333 C.0x333 D.020 4.设a 为整型变量,不能正确表达数学关系:1010 && a<15 D.!(a<=10) && !(a>=15) 5.设以下变量均为int 类型,表达式的值不为9 的是 C 。 A.(x=y=8,x+y,x+1) B.(x=y=8,x+y,y+1) C.(x=8,x+1,y=8,x+y) D.(y=8,y+1,x=y,x+1) 二.填空题 1 .-127 的原码为11111111 、反码为10000000 、补码为10000001 。 2.逻辑表达式x && 1 等价于关系表达式if(x==0) 表达式的值为0;else 表达式的值为1;。3.设int a=5, b=6; 则表达式(++a==b--)? ++a : --b 的值是7 。 4.设c = 'w', a = 1, b = 2, d = -5, 则表达式'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==(a=2)的值 分别为 1 、0 、 1 、 1 。 5.运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为c1=2,c2=5 。 #include int main(void) { int c1 = 0, c2 = 0; char ch; while((ch = getchar()) !=?#?) switch(ch){ case …a?: case …h?: c1++; default: c2++; } printf(“c1=%d,c2=%d\n”, c1, c2); return 0; }

历年C语言考试题库及答案

C语言理论上机考试选择题部分(共200题,仅针对11级定向专业) 1、下面程序的输出是___D______ #include<> void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是________D____. A) true B) 非零值 C) 0 D) 1 5、C语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC码 D) ASCII码 7、C语言程序的基本单位是_____C______.A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句a+=a-=a*a后,a的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include<> void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include<> void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include<> void main() {int x=10,y=3; printf("%d\n",y=x/y); }

c语言习题答案

实验一 (1)编程求37+29的值,实习VC环境。 #include void main() { int a,b,sum; a=37; b=29; sum=a+b; printf("sum=%d",sum); } (2)从键盘输入三个整数,求出最大数并输出。 #include void main() { int a,b,c,y; int max(int x,int y); printf("input a,b,and c:"); scanf("%d,%d,%d",&a,&b,&c); y=max(a,b); y=max(y,c); printf("\nmax=%d\n",y); } int max(int x,int y) { int z; if(x>y) z=x; else z=y; return(z); } (3)通过上机实践,运行下列程序并分析输出结果。 A 程序代码 #include void main() { char ch='a'; printf("%c对应的ASCII码是:%d\n",ch,ch); } 程序输出结果:a对应的ASC||码是:97

B 程序代码 #include void main() { int a=168; float b=123.456; float x=35.567,y; printf("a=%5d\n",a); printf("a=%-5d\n",a); printf("b=%6.2f\n",b); printf("b=%e\n",b); y=(int)(x*100+0.5)/100.0; printf("x=f,y=%f\n",x,y); } 程序输出结果: a=168 a=168 b=123.46b=1.234560e+002 x=f,y=35.567001 C程序代码 #include void main() { int a=168; printf("十进制数%d对应的八进制数是%o\n",a,a); printf("十进制数%d对应的十六进制数是%x\n",a,a); } 程序输出结果: 十进制数168对应的八进制数是250 十进制数168对应的十六进制数是a8

相关文档