文档库 最新最全的文档下载
当前位置:文档库 › C语言练习题及参考答案

C语言练习题及参考答案

C语言练习题及参考答案
C语言练习题及参考答案

练习题1及参考答案

1. 单项选择题

(1)以下并非C语言的特点的是。

A. C语言简洁和紧凑

B. 能够编制出功能复杂的程序

C. C语言可以直接对硬件进行操作

D. C语言移植性好

【答】B

(2)一个C程序的执行是从。

A. main()函数开始,直到main()函数结束

B. 第一个函数开始,直到最后一个函数结束

C. 第一个语句开始,直到最后一个语句结束

D. main()函数开始,直到最后一个函数结束

【答】A

(3)在C程序中,main()的位置。

A. 必须作为第一个函数

B. 必须作为最后一个函数

C. 可以任意

D. 必须放在它所调用的函数之后

【答】C

(4)一个C程序是由。

A. 一个主程序和若干子程序组成

B. 一个或多个函数组成

C. 若干过程组成

D. 若干子程序组成

【答】B

(5)下列说法正确的是。

A. 在执行C程序时不是从main()函数开始的

B. C程序书写格式限制严格,一行内必须写一个语句

C. C程序书写格式比较自由,一个语句可以分行写在多行上

D. C程序书写格式严格要求一行内必须写一个语句,并要求行号

【答】C

2. 填空题

(1)一个C源程序至少有①个main()函数和②个其他函数。【答】①一②若干

(2)任何C语句必须以结束。

【答】分号

(3)C语言源程序的基本单位是。

【答】函数

(4)C编译程序的功能是。

【答】将C源程序编译成目标代码

练习题2及参考答案

1. 单项选择题

(1)以下字符串为标识符的是。

A. _MY

B. 2_2222

C. short

D. LINE 5

【答】A

(2)下列符号可以作为变量名的是。

A. +a

B. *p

C. _DAY

D. next day

【答】C

(3)设c是字符变量,则以下表达式正确的是。

A. c=666

B. c='c'

C. c="c"

D. c="abcd"

【答】B

(4)23+'m'+3.6-123.45/'b'的结果是型数据。

A. char

B. double

C. int

D. long int

【答】3.6和123.45均为double型,运算结果也是double型。本题答案为B。

(5)若变量已正确赋值,以下符合C语言语法的表达式是。

A. a=a+7;

B. a=7+b+c,a++

C. int(12.3%4)

D. a=a+7=c+b 【答】选项A错误,以分号结尾是一个语句而不是表达式;选项B正确,是一个逗号表达式;选项C错误,因为%求模运算的两个运算数必须均为整数;选项D错误,给一个表达式(a+7)而非变量赋值是不正确的。本题答案为B。

(6)整型变量x=1,y=3,经下列计算后,x的值不等于6的表达式是。

A. x=(x=1+2,x*2)

B. x=y>2?6:5

C. x=9-(--y)-(--y)

D. x=y*(int)(4.8/2) 【答】选项A的计算过程——x=1+2=3,再计算x=x*2=6;选项B的计算过程——y>2为真,x=6;选项C的计算过程——式中有两个--运算,最后y=1,x=9-1-1=7;选项D的计算过程——x=y*(int)(4.8/2)=y*2=6。本题答案为C。

(7)若定义

int m=7,n=12;

则能得到值为3的表达式是。

A. n%=(m%=5)

B. n%=(m-m%5)

C. n%=m-m%5

D. (n%=m)-(m%=5)

【答】A、B、C、D选项各表达式的值分别是0、2、2、3。本题答案为D。

(8)以下程序的运行结果是。

#include

main()

{

int i=5,j=6,m=i+++j;

printf("%d,%d,%d\n",i,j,m);

}

A. 6,6,11

B. 5,6,11

C. 5,6,12

D. 6,6,12

【答】m=i+++j等价于m=(i++)+j。本题答案为A。

(9)以下程序的运行结果是。

#include

void main()

{

double f=3.14159;

int n;

n=(int)(f+10)%3;

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

}

A. 1

B.

0 C.

2 D. 3

【答】f+10=13.14159,(int)(f+10)=13,13%3=1。本题答案为A。

(10)以下程序的运行结果是。

#include

void main()

{

int n,i=2,j=4;

n=(++i==j--);

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

}

A. 0

B.

1 C.

2 D. 3

【答】++i返回3,j--返回4,两者不等,故n=0。本题答案为A。

2. 填空题

(1)表达式语句与表达式的不同是。

【答】语句必须以分号结尾,而表达式结尾没有分号;语句可以出现在函数体中数据定义或声明语句后面的任何位置,而表达式只能出现在语句中规定的位置或表达式中(嵌套出现)。

(2)在C语言中可以利用将一个表达式的值转换成指定的类型。

【答】强制类型转换

(3)写出完成下列功能的表达式:

· 如果变量c是大写字母,则将c转换成对应的小写,否则c的值不改变。①

· 如果d是数字,则将d转换成相应的整数,否则d的值不改变。②

· 返回两个整数x、y中较大者。③

· 返回三个整数x、y和z中最大者。④

【答】① c=(c>='A' && c<='Z') ? c-'A'+'a' : c

② d=(d>='0' && d<='9') ? d-'0' : d

③ (x>y) ? x : y

④ (x>y) ? (x>z ? x : z) : (y>z ? y : z) 或 (x>y && x>z) ? x : (y>z ? y : z)

(4)以下程序的运行结果是。

#include

#include

main()

{

char s[]="ab\n\\\'\r\b";

printf("%d,%d\n",sizeof(s),strlen(s));

}

【答】字符串s由字符'a'、'b'、'\n'、'\\'、'\''、'\r'、'\b'等7个字符组成,故长度为7,但字符串本身有一个结束标志'\0'。所以,s的长度为7,在内存中占用8个字节。输出为:8,7。

(5)以下程序的运行结果是。

#include

main()

{

int a=2,b=4,c=6,x,y;

y=(x=a+b),(b+c);

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

}

【答】结果为y=6,x=6。

(6)以下程序的运行结果是。

#include

main()

{

char a,b;

a='a';b='b';

a=a-32;b=b-32;

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

}

【答】A,B,65,66

(7)以下程序的运行结果是。

#include

main()

{

int i,j,x,y;

i=5;j=7;

x=++i;y=j++;

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

}

【答】执行x=++i后,i=6,x=6;执行y=j++后,j=8,y=7;所以输出为:6,8,6,7。

(8)以下程序的运行结果是。

#include

main()

{

int a=1;

char c='a';

float f=2.0;

printf("①:%d\n",a+2!=c-100);

printf("②:%d\n",(a>c)>=(f>4));

printf("③:%d\n",!a==!f);

printf("④:%d\n",(!a&&1)!=(!c||1));

printf("⑤:%d\n",(!a>2)?3:0)<((f!=1)?0:1);

printf("⑥:%d\n",(1,2,3)==(3,3,3));

}

【答】①:1 (a+2=3,c-100=-3,表达式结果=1(真))

②:1(a>c的结果是0(假),f>4的结果是0,表达式结果=1)

③:1(!a的结果是0,!f的结果是0,表达式结果=1)

④:1(!a&&1的结果是0,!c||1的结果是1,表达式结果=1)

⑤:0(!a>2的结果是0,(!a>2)?3:0的结果是0,f!=1的结果是1,(f!=1)?0:1的结果是0,表达式结果=0)

⑥:1((1,2,3)表达式的结果是3,(3,3,3)的结果是3

练习题3及参考答案

1. 单项选择题

(1)以下说法正确的是。

A. 输入项可以为一个实型常量,如scanf("%f",3.5)

B. 只有格式控制没有输入项也能进行正确输入,如scanf("%d")

C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f)

D. 当输入数据时,必须指明变量的地址,如scanf("%f",&f)

【答】D

(2)若a为整型变量,则以下语句。

a=-2L;

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

A. 赋值不合法

B. 输出值为-2

C. 输出为不确定值

D. 输出值为2

【答】B

(3)若x和y均定义为int型,z定义为double型,以下scanf()函数调用语句不合法的是。

A. scanf("%d%lx,%le",&x,&y,&z);

B. scanf("%2d*%d%lf",&x,&y,&z);

C. scanf("%x%*d%o",&x,&y);

D. scanf("%x%o%6.2f",&x,&y,&z); 【答】scanf()函数中没有精度控制。本题答案为D。

(4)若a,b,c均定义为int型,要给它们输入数据,正确的输入语句是。

A.

read(a,b,c);

B. scanf("%d%d%d",a,b,c);

C. scanf("%D%D%D",a,b,c);

D. scanf("%d%d%d",&a,&b,&c); 【答】D

(5)若有定义和语句:

int n=10;

printf("%\n",n);

其输出结果是。

A. 输出10

B. 输出一空行

C. 没有输出

D. 编译不通过

【答】D

(6)若a是float型变量,b是unsigned型变量,以下输入语句中合法的是。

A. scanf("%6.2f%d",&a,&b);

B. scanf("%f%n",&a,&b);

C. scanf("%f%3o",&a,&b);

D. scanf("%f%f",&a,&b);

【答】C

(7)字母a的ASCII码为97,则下列语句的运行结果为。

char a='a';

a--;

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

A.

b,c

B. a--运算不合法,故有语法错

C.

98,c

D. 格式描述和输出项不匹配,输出无定值

【答】C

(8)若k1,k2,k3,k4均为int型变量,为了将整数10赋给k1和k3,将整数20赋给k2和k4,则对应以下scanf()函数调用语句的正确输入方式是。

scanf("%d%d",&k1,&k2);

scanf("%d,%d",&k3,&k4);

A. 1020

B. 10 20

C. 10,20

D. 10 20

1020

10 20

10,20

10,20

【答】D

(9)有如下程序,输入数据12345 678↙后,x的值是①,y的值是②。

#include

main()

{

int x;

float y;

scanf("%3d%f",&x,&y);

}

① A. 12345 B. 123 C.

45 D.345

【答】① B② A

(10)有如下程序,输入数据25,13,10↙后,正确的运行结果是。

#include

main()

{

int x,y,z;

scanf("%d%d%d",&x,&y,&z);

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

}

A. x+y+z=48

B. x+y+z=35

C. x+y+z=38

D. 不确定值

【答】输入的数据与scanf()函数的格式不匹配。本题答案为D。

(11)有如下程序,输入数据12 345↙后,x的值是①,y的值是②。

#include

main()

{

int x;

float y;

scanf("%3d%f",&x,&y);

}

① A. 12 B. 123 C. 12345 D. 0

② A. 12.000000 B. 345.000000 C. 12345.000000 D. 0.000000

【答】① A ② B

(12)有如下程序,输入数据后,程序的运行结果是。

#include

main()

{

int a;

float b,c;

scanf("%2d%3f%4f",&a,&b,&c);

printf("a=%d,b=%f,c=%f\n",a,b,c);

}

A.

a=98,b=765,c=4321 B. a=10,b=432,c=8765

C. a=98,b=765.000000,c=4321.000000

D. a=98,b=765.0,c=4321.0

【答】C

(13)以下程序的运行结果是。

#include

main()

{

float a=3.1415;

printf("|%6.0f|\n",a);

}

A. |3.1415|

B. | 3.0|

C. | 3|

D. | 3.|

【答】C

(14)以下程序的运行结果是。

#include

main()

{

float a=3.1415;

printf("|%06.0f|\n",a);

}

A. |000003|

B. |3.1415|

C. |00003.0|

D. | 3|

【答】A

(15)以下程序的运行结果是。

#include

main()

{

float a=3.1415;

printf("|%-6.0f|\n",a);

}

A. |3 |

B. |000003|

C. |3.1415|

D. |3.0 |

【答】A

(16)以下程序的运行结果是。

#include

main()

{

int i=010,j=10;

printf("%d,%d\n",++i,j--);

}

A. 11.10

B. 9,10

C. 010,9

D. 10,9

【答】B

(17)以下程序的运行结果是。

#include

main()

{

int x=10,y=10;

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

}

A. 10,10

B. 9,9

C. 9,10

D. 10,9

【答】D

2. 填空题

(1)以下程序的运行结果是。

#include

main()

{

float f=3.1415927;

printf("%f,%5.4f,%3.3f",f,f,f);

}

【答】3.141593,3.1416,3.142

(2)以下程序的运行结果是。

#include

main()

{

float f=3.5;

printf("%f,%g",f,f);

}

【答】3.500000,3.5

(3)以下程序的运行结果是。

#include

main()

{

float f=31.41592;

printf("%f,%e",f,f);

}

【答】31.415920,3.141592e+001

(4)以下程序的运行结果是。

#include

main()

{

int x=0177;

printf("%3d,%6d,%6o,%6x,%6u\n",x,x,x,x,x);

}

【答】127, 127, 177, 7f, 127

(5)以下程序的运行结果是。

#include

main()

{

int x=0177;

printf("%-3d,%-6d,%-6o,%-6x,%-6u\n",x,x,x,x,x); }

【答】127,127 ,177 ,7f ,127

(6)以下程序的运行结果是。

#include

main()

{

char c='A'+10;

printf("c=%c\n",c);

}

【答】c=K

(7)以下程序输入123456↙后,其运行结果是。

#include

main()

{

int a,b;

scanf("%2d%3d",&a,&b);

printf("a=%d,b=%d\n",a,b);

}

【答】a=12,b=345

(8)以下程序输入ABC↙后,其运行结果是。

#include

main()

{

char c;

scanf("%3c",&c);

printf("c=%c\n",c);

}

【答】c=A

(9)以下程序输入100↙后,其运行结果是。

#include

main()

{

int n;

scanf("%o",&n);

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

}

【答】n=64

(10)以下程序输入x=1.23,y=50↙后,其运行结果是。

#include

main()

{

float x,y;

scanf("x=%f,y=%f",&x,&y);

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

}

【答】x= 1.23,y= 50.00

(11)执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82, c1='A',c2='a'正确的数据输入形式是。

#include

main()

{

int a,b;

float x,y;

char c1,c2;

scanf("a=%d b=%d",&a,&b);

scanf("x=%f y=%f",&x,&y);

scanf("c1=%c c2=%c",&c1,&c2);

printf("a=%d,b=%d,x=%g,y=%g,c1=%c,c2=%c\n",a,b,x,y,c1,c2);

}

【答】a=3 b=7x=8.5 y=71.82c1=A c2=a↙

3. 编程题

(1)编写一个程序,求出任一输入字符的ASCII码。

【解】程序如下:

/*文件名:exci3_1.cpp*/

VC++6.0

#include

main()

{

char c;

printf("输入字符:");

scanf("%c",&c);

printf("字符%c的ASCII码为%d\n",c,c);

}

(2)编写一个程序,输入一个字符,依次输出其前导字符、该字符和后续字符。【解】程序如下:

/*文件名:exci3_2.cpp*/

VC++6.0

#include

#define pi 3.14159

main()

{

char c;

printf("输入一个字符:");

scanf("%c",&c);

printf("输出结果:%c,%c,%c\n",c-1,c,c+1);

}

(3)编写一个程序,输出任意一个十进制整数对应的八进制数和十六进制数。【解】直接使用printf()的格式符输出八进制数和十六进制数。程序如下:

/*文件名:exci3_3.cpp*/

VC++6.0

#include

main()

{

int i;

printf("输入一个整数:");

scanf("%d",&i);

printf("%d(10)<=>%o(8)\n",i,i);

printf("%d(10)<=>%x(16)\n\n",i,i);

}

(4)编写一个程序,从键盘输入圆锥体的半径r和高度h,计算其体积。【解】圆锥体体积的计算公式为:

v=π×r×r×h/3

程序如下:

/*文件名:exci3_4.cpp*/

VC++6.0

#include

main()

{

float r,h,pi=3.1415,v;

printf("圆锥半径,高度:");

scanf("%f,%f",&r,&h);

v=pi*r*r*h/3.0;

printf("圆锥体积=%g\n\n",v);

}

练习题4及参考答案

1. 单项选择题

(1)if后面的逻辑表达式之值。

A. 只能是0或1

B. 只能是正整数或负整数

C. 只能是整型或字符型数据

D. 可以是任何类型的数据

【答】A

(2)为了避免嵌套的if-else语句的二义性,C语言规定else总是与组成配对关系。A. 缩排位置相同的if B. 在其之前未配对的if

C. 在其之前最近的未配对的if

D. 同一行上的if

【答】C

(3)选择出合法的if语句(设int x,a,b,c;)。

A. if (a=b) x++;

B. if (a=

C. if (a<>b) x++;

D. if (a=>b) x++;

【答】选项B、C、D中的比较运算符不正确,在选项A中,a=b返回b,若b为0或空字符,则为假,否则为真。本题答案为A。

(4)以下不正确的if语句是。

A. if (x>y);

B. if (x=y) && (x!=0) x+=y;

C. if (x!=y) scanf("%d",&x);else scanf("%d",&y);

D. if (x

【答】B。应改为if (x=y && x!=0) x+=y;

(5)若定义float x;int a, b;,则正确的switch语句是。

A. switch(x)

{

case 1.0:printf("*\n");

case 2.0:printf("**\n");

}

B. switch(x)

{

case 1.2:printf("*\n");

case 3:printf("**\n");

}

C. switch(a+b)

{

case 1:printf"*\n"};

case 1+2:printf("**\n")

}

D. switch(a+b)

{

case 1:printf("*\n");

case 2:printf("**\n");

}

【答】D

(6)执行下列程序,输入为1的运行结果是①,输入为3的运行结果是②。#include

main()

{

int k;

scanf("%d",&k);

switch(k)

{

case 1: printf("%d ",k++);

break;

case 2: printf("%d ",k++);

case 3: printf("%d ",k++);

break;

case 4: printf("%d ",k++);

default:printf("Full!\n");

}

}

① A. 1 B. 2 C. 2 3 4 5 D. 1 2 3 4

②A. 3 B. 4 C. 3 4 D. 4 5

【答】① A ② A

(7)执行下列程序,输入为1的运行结果是①,输入为3的运行结果是②。#include

main()

{

int k;

scanf("%d",&k);

switch(k)

{

case 1: printf("%d ",k++);

case 2: printf("%d ",k++);

case 3: printf("%d ",k++);

case 4: printf("%d ",k++);

break;

default:printf("Full!\n");

}

}

① A. 1 B. 2 C. 2 3 4 5 D. 1 2 3 4

②A. 3 B. 4 C. 3 4 D. 4 5

【答】① D ② C

(8)以下程序的运行结果是。

#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

【答】A

2. 填空题

(1)有定义int x;则“x是偶数”的表达式是。

【答】x % 2 == 0

(2)有定义int a,b;则“a是b的整数倍”的表达式是。

【答】a % b == 0

(3)有定义int a,b,c;它们表示三个边长,则能够构成一个直角三角形的条件是。【答】a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a

(4)有定义int a,b,c;它们表示三个边长,则能够构成一个三角形的条件是。【答】(a+b

(5)以下程序的运行结果是。

#include

main()

{

int k=2;

switch (k)

{

case 1: printf("%d\n",k++);

break;

case 2: printf("%d ",k++);

case 3: printf("%d\n",k++);

break;

case 4: printf("%d\n",k++);

default:printf("Full!\n");

}

}

【答】k=2,执行case 2分支,k++返回2,此时k=3,输出2,后跟一空格。由于没有break语句,继续执行case 3分支,k++返回3,此时k=4,输出3,由于有break语句,退出switch语句。所以输出为:2 3。

(6)以下程序的运行结果是。

#include

main()

{

int s=1,t=1,a=5,b=2;

if (a>0)

s++;

if (a>b)

t+=s;

else if (a==b)

t=5;

else

t=2*s;

printf("s=%d,t=%d\n",s,t);

}

【答】a>0,s变为2。a>b为真,t=t+s=3。所以输出为:s=2,t=3。

(7)以下程序的运行结果是。

#include

main()

{

int k=2;

switch(k)

{

case 1:printf("%d ",k++);

case 2:printf("%d ",k++);

case 3:printf("%d ",k++);

case 4:printf("%d ",k++); break;

default:printf("Full!\n");

}

printf("\n");

}

【答】k=2,执行case 2分支,k++返回2,此时k=3,屏幕输出2,后跟一空格。由于没有break语句,继续执行case 3分支,k++返回3,此时k=4,屏幕输出3,由于没有break语句,继续执行case 4分支,k++返回4,此时k=5,屏幕输出4,由于有break语句,退出switch语句。所以输出为:2 3 4。

(8)以下程序的运行结果是。

#include

main()

{

int x=0,y=2,z=3;

switch(x)

{

case 0: switch(y==2)

{

case 1:printf("*");break;

case 2:printf("%");break;

}

case 1: switch(z)

{

case 1:printf("$");

case 2:printf("*");break;

default:printf("#");

}

}

}

【答】x=0,执行外层switch语句的case 0部分,y==2为真,则执行里层switch语句的case 1部分,输出“*”,遇到break语句,退出里层的switch语句,由于里层的switch语句之后没有break语句,所以转而执行外层switch语句的case 1部分,这时z=3,故执行里层switch语句的default部分,输出“#”,整个程序执行完毕。所以输出为:*#。

3. 编程题

(1)编写一个程序判断用户输入的字符是数字字符、字母字符还是其他字符。

【解】在'0'到'9'之间的为数字字符,在'a'到'z'或'A'到'Z'之间的为字母字符;否则为其他字符。程序如下:

/*文件名:exci4_1.cpp*/

#include

main()

{

char c;

printf("输入一个字符:");

scanf("%c",&c);

if (c>='0' && c<='9')

printf("\n%c是数字字符\n\n",c);

else if ((c>='a' && c<='z') || (c>='A' && c<='Z'))

printf("\n%c是字母字符\n\n",c);

else

printf("\n%c是其他字符\n\n",c);

}

(2)假设今天是星期日,编写一个程序,求123456天后是星期几。

【解】星期是7天一个轮回,由于今天是星期日,所以123456除以7的余数即为星期几。程序如下:Array

/*文件名:exci4_2.cpp*/

#include

main()

{

int n=123456;

n=n%7;

printf("\n星期");

switch(n)

{

case 0: printf("天");

break;

case 1: printf("一");

break;

case 2: printf("二");

break;

case 3: printf("三");

break;

case 4: printf("四");

break;

case 5: printf("五");

break;

case 6: printf("六");

break;

}

printf("\n\n");

}

(3)编写一个程序,输入年号和月份,判断该年是否为闰年,并根据给出的月份判断是什么季节和该月有多少天?闰年的条件是年号能被4整除但不能被100整除,或者能被400整除。

【解】直接根据闰年的定义求解,如果是闰年,2月份为29天;否则为28天,其他月份相同。规定3~5月为春季,6~8月为夏季,9~11月为秋季,1、2和12月为冬季。本题程序如下:

/*文件名:exci4_3.cpp*/

#include

main()

{

int y,m,leap,season,days;

printf("年份,月份:");

scanf("%d,%d",&y,&m);

if ((y%4==0 && y%100!=0) || (y%400==0))

leap=1;

else

leap=0;

if (m>=3 && m<=5)

season=1;

else if (m>=6 && m<=8)

season=2;

else if (m>=9 && m<=11)

season=3;

else

season=4;

C语言常见复习题(选择填空)及参考答案

C语言常见复习题及参考答案 一、选择题 1.下述标识符中,()是合法的用户标识符。 A.A#C B.getch C.void D.ab* 2.在C语言中,字符型数据在内存中是以()形式存放的。 A.原码 B.BCD码 C.反码 D.ASCII码 3.以下选项中不合法的用户标识符是()。 A.abc.c B.file C.Main D.PRONTF 4.以下选项中不合法的用户标识符是()。 A.123 B.printf C.Anbsp; D.Dim 5.可以在C语言程序中用做用户标识符的一组标识符是()。 A.void B.as-b3 C.for D.2c define -123 -abc Do WORD If cas SIG 6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。 (1)A.001 B.table_1 C.0_t D.k% Int t*.1 W10 point (2)A.Fast_ B.void C.pbl D. Fast+Big abs fabs beep (3)A.xy_ B.longdouble C.*p D.CHAR 变量1 signed history Float 7.()是构成C语言的基本单位。 A.函数 B.过程 C.子程序 D.子例程 8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。

(1).A.包含3个字符 B.包含2个字符 C.包含1个字符 D.无定值,说明不合法 (2).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 (3).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 9.若x为int型变量,则执行以下语句后,x的值为 x=6; x+=x-=x*x A.36 B.-60 C.60 D.-24 10.在C语言中,char 型数据在内存中是以()形式存储的。 A.原码 B.补码 C.ASCII码 D.反码 11.以下运算符中优先级最低的算符为(),优先级最高的为()。 A.&& B.& C.|= D.|| E.?: F.!= 12.若有运算符>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列顺序为 A.*= << > % sizeof B.<< *= > % sizeof C.*= > << sizeof % D.*= > << % sizeof 13.若有以下类型说明语句 char w; int x; float y; double z; 则表达式w*x+z-y 的结果是()类型。 A.float B.char C.int D.double 14.若w,x,y,z 均为int 型变量,则执行下面的语句后, w=(1), x=(2), y=(3), z=(4)。 w=5; x=4; y=w++*w++*w++; z=--x*=--x*--x;

C语言选择题题库

C语言程序设计题库说明 一本题库适用对象 计算机应用技术计算机软件软件技术计算机网络技术与计算机控制技术等专业 二本题库包含有175道选择题 三本题库所有题目均附有答案

一、选择题 下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。 1、不合法的整数是()。 A)0x35 B)43.6 C)0532 D)-346 2、下列合法的字符常量是()。 A)“f” B)x C)65 D)‘\Xab’ 3、设有整型变量x,单精度变量y=,表达式x=float(y*3+((int)y%4))执行后,x的值为()。 A)17 B)17.500000 C) D) 4、在C语言中,负整数在内存中以()形式释放。 A)补码 B)BCD码 C)反码 D)十进制数 5、在C语言中,要求参加运算的数必须是整数的运算符是()。 A)/ B)!C)% D)= = 6、()是C语言中非法的数据类型关键字。 A)float B)singed C)integer D)Char

7、现已定义整形变量int i=1;执行循环语句while(i++<5);后i的值为()。 A)1 B)5 C)6 D)以上三个答案都不正确 8、下列语句的输出结果是()。 printf(“%f\n”,(float)(2+4)/2); A)有语法错误不能通过编译 B)3 C)D) 9、C语言中,整数-8在内存中的存储形式是()。 A)1111,1111,1111,1000 B)1000,0000,0000,1000 C)0000,0000,0000,1000 D)1111,1111,1111,0111 10、设C语言中,int类型数据占2个字节,则long类型数据占()个字节。 A)1 B)2 C)8 D)4 11、若变量a已说明为float类型,则能实现将a中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。 A)a=(a*100+/ B)a=(a*100+/100 C)a=(int)(a*100+/ D)a=(a/100+*

C语言上机作业题及答案

实验一: 1、已知华氏温度,根据转换公式计算相应的摄氏温度。 摄氏温度= 5*(华氏温度-32)/9 2.任意输入一个有五位数字的正整数,逆序输出每一数位上的数字。 如: 输入 12345 输出 5 4 3 2 1 #include"stdio.h" main() { double t,T; printf ("已知华氏温度,根据转换公式计算相应的摄氏温度"); scanf ("%lf",&t); T=(5*(t-32)/9); printf ("摄氏温度=%lf",T); } #include"stdio.h" main() { int value,a,b,c,d,e,m,n,h; printf ("任意输入一个有五位数字的正整数,逆序输出每一数位上的数字"); scanf ("%d",&value); a=value/10000; m=value%10000; b=m/1000; n=m%1000; c=n/100; h=n%100; d=h/10; e=h%10; printf ("%d%d%d%d%d",e,d,c,b,a); } 实验二: 1.一个成年人的身高与其父母的身高密切相关,根据以下人体标准身高预测公式计算自己或某个同学的身高,并跟实际身高比较,给出结论是否符合该公式(误

差在3厘米范围内即视为相符)。 男性身高=(父亲身高+母亲身高)×1.08÷2(厘米) 女性身高=(父亲身高×0.923+母亲身高)÷2(厘米) 2.从键盘上输入税前收入,根据以下公式及规则,计算个人所得税税额并输出。应纳个人所得税税额=(税前收入—起征点额度)*适用税率—速算扣除数 其中,起征点额度是3500元,其他如下: 应纳税所得额税率速算扣除数 不超过1500元的部分 3% 0 超过1500元至4500元的部分 10% 105 超过4500元至9000元的部分 20% 555 超过9000元至35000元的部分 25% 1005 超过35000元至55000元的部分 30% 2755 超过55000元至80000元的部分 35% 5505 超过80000的部分 45% 13505 如:某人月收入5000元,则应纳个人所得税税额为(5000-3500)* 10% - 105 = 45元。 #include #include main() { float A,a,H,h,b; printf("父亲身高(厘米)\n"); scanf("%f",&A); printf("母亲身高(厘米)\n"); scanf("%f",&a); printf("孩子实际身高(厘米)\n"); scanf("%f",&H); printf("请选择孩子性别:女=0,男=1\n"); scanf("%f",&b); if(b) h=(A+a)*1.08/2; else h=(A*0.923+a)/2; if(fabs(H-h)<=3) printf("实际身高符合该公式\n"); else

C语言习题级参考答案

测试题11 1.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(B)。 A、char s[10];strcpy(s,"abcdefg"); B、char s[10];s="abcdefg"; C、char s[10]="abcdefg"; D、char t[]="abcdefg",*s=t 2.下列语句的输出结果是(B)。 printf("%d\n",(int)(2.5+3.0)/3); A、2 B、1 C、有语法错误不能通过编译 D、0 3.以下程序段的输出结果是 A main() { char ch1, ch2; ch1 = …A? + …5? - …3?; ch2 = …A? + …5? - …3?; printf(“%d,%c\n”, ch1,ch2); } A、67, C B、B,C C、不确定的值 D、C,D 4.以下程序段的输出结果为(B)。 char c[]="abc"; int i=0; do ;while(c[i++]!='\0');printf("%d",i-1); A、abc B、3 C、ab D、2 5.相同结构体类型的变量之间,可以(C)。 A、比较大小 B、地址相同 C、赋值 D、相加 6. C语言源程序文件经过C编译程序编译连接之后生成一个后缀为(B)的可执行文件 A、.obj B、.exe C、.c

D、.bas 7.以下程序的输出结果是 C main() { char s[] = “ABCD”, *p; for(p = s; p < s + 4; p++) printf(“%s\n”, p); } A、 B、 C、 D、 8.当调用函数时,实参是一个数组名,则向函数传送的是(B)。 A、数组每一个元素的地址 B、数组的首地址 C、数组每个元素中的值 D、数组的长度 9.如果int a=2,b=3,c=0,下列描述正确的是(D) A、a>b!=c和a>(b!=c)的执行顺序是一样的 B、a&&b>c的结果为假 C、a||(b=c)执行后b的值为0 D、!a!=(b!=c)表达式的值为1 10.当调用函数时,实参是一个数组名,则向函数传送的是(B)。 A、数组每个元素中的值 B、数组的首地址 C、数组的长度

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)

本卷共有4道大 一、单项选择题(25道小题,共50分) 1、以下说法中正确的是(C)(2分) A、C语言程序总是从第一个的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分 2、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 3、以下选项中,不合法常量的是(B)(2分) A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0 4、C语言中最简单的数据类型包括(B)(2分) A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 5、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是(D)(2分) A、10>=a>=0 B、a>=0 and a<=10 C、a>=0||a<=10 D、a>=0&&a<=10 6、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)A、6.500000B、6 C、5.500000 D、6.000000

7、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)(2分) A、INPUT x、y、z; B、scanf("%d%d%d",&x,&y,&z); C、scanf("%d%d%d",x,y,z); D、read("%d%d%d",&x,&y,&z); 8、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分)A、把x和y按从大到小排列B、把x和y按从小到大排列 C、无确定结果 D、交换x和y中的值 9、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)A、0B、0.5 C、1 D、2 10、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是(B)。(2分) A、A B、a C、Z D、z 11、执行程序段int a=-1,b=4,k;k=(++a<0)&&!(b-- <=0);printf(“%d %d %d\n”,k,a,b);后的输出结果是(D )。 (2分) A、1 0 4 B、1 0 3 C、0 0 3 D、0 0 4 12、设intx=1, y=1;表达式(!x||y--)的值是(B)。(2分) A、0B、1 C、2 D、-1 13、程序段intx=3;do{printf(“%d”,x-=2);}while(!(--x));的输出结果是(C)。(2分) A、1 B、30 C、1-2 D、死循环

C语言上机作业试题5套含答案

第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (输入的有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入712 1411 (出发时间是7:12,到达时间是14:11) 输出The train journey time is 6 hours 59 minutes. 5. 数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。 例:输入1257 输出The encrypted number is 4601 思考题:你能否编程找出谁做的好事? 有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ?A说:不是我。 ?B说:是C。 ?C说:是D。 ?D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交

C语言习题全集+答案

第一单元程序设计和C语言 一、选择题 1.C语言的基本构成单位是:。 A. 函数 B. 函数和过程 C. 超文本过程 D. 子程序 2.一个C语言程序总是从开始执行。 A. 主过程 B. 主函数 C. 子程序 D.主程序 3.C语言的程序一行写不下时,可以。 A. 用逗号换行 B. 用分号换行 C. 在任意一空格处换行 D. 用回车符换行 4.以下叙述不正确的是:。 A. 在C程序中,语句之间必须要用分号";"分隔 B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数都能正确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 5.以下不正确的C语言标识符是。 A. ABC B. abc C. a_bc D. 6.下列字符串是标识符的是:。 A. _HJ B. 9_student C. long D. LINE 1 7.以下说法中正确的是:。 A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须放在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 8.不合法的常量是:。 A. ‘\2’ B. " " C. ‘3’ D. ‘\483’ 9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:。 int k,a,b; unsigned long w=5; double x=; A. x%(-3) B. w+=-2 C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3) 10.在C语言中,字符型数据在内存中以形式存放。 A. 原码 B. BCD码 C. 反码 D. ASCII码 11.若有定义:int a=7; float x=; y=;

C语言程序设计期末考试选择题题库

第一章1、一个C程序可能出现的错误有(A)A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束

5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double 3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab'

4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:chara;intb;floatc;doubled; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.longint C.int D.float 7、若有定义:doublex=1,y; 执行语句,则y的值是(B) A,1 B,2.0

扬州大学C语言上机作业1-9整理

答案仅供参考 实验一 4.设计main函数实现从键盘上输入两个整型变量a、b的值,交换它们的值并输出。#include void main() { int a,b,c; printf("enter first integer : "); scanf("%d",&a); printf("enter second integer : "); scanf("%d",&b); c=a; a=b; b=c; printf("%d,%d\n",a,b); getch(); } 5.设计main函数实现从键盘上输入两个整型变量a、b的值,并将b的值加入到a中,输出a的值。 #include void main() { int a,b,c; printf("enter first integer : "); scanf("%d",&a); printf("enter second integer : "); scanf("%d",&b); c=a+b; a=c; printf("a=%d,b=%d\n",a,b); getch(); } 6.从键盘输入整数x的值,根据公式y=x3+3x2+x-10求y的值,输出x和y的值。 #include void main() { int x,y; printf("enter first integer : "); scanf("%d",&x); y=x*x*x+3*x*x+x-10;

printf("x=%d,y=%d\n",x,y); getch(); } 实验二 1.编写程序,从键盘上输入一个整数(例如560)表示分钟,将其换算成用小时和分钟表示,然后输出至屏幕。 #include void main() { int a,b,hour,min; printf("enter first integer : "); scanf("%d",&a); b=60; hour=a/b; min=a%b; printf("hour=%d,min=%d\n",hour,min); getch(); } 2.编写程序,输入两个整数(例如1500和350),求出它们的商和余数并进行输出。 #include void main() { int a,b,c,d; a=1500,b=350; c=a/b; d=a%b; printf("%d,%d",c,d); getch(); } 3.编写程序,读入3个整数给分别变量a,b,c,然后将a,b,c的值输出到屏幕,再交换它们中的数值,把a中原来的值给b,把b中原来的值赋给c,把c中原来的值赋给a,然后再次输出a,b,c的值到屏幕。 #include void main() { int a,b,c,d; printf("enter first integer : "); scanf("%d",&a);

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语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学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语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

(完整版)C语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

C语言单项选择题

单项选择题(本大题共20小题,每小题1分,共20分) 1.C++源程序文件扩展名为(A) A..cpp B..h C..1ib D..obj 5.对使用关键字new所开辟的动态存储空间,释放时必须使用(C)A.free B.create C.delete D.realse 6.从本质上看,引用是被引用变量的(B) A.拷贝 B.别名 C.复制 D.克隆 7.在函数调用时,如某一默认参数要指明一个特定值,则有(B) A.其之前所有参数都必须赋值B.其之后所有参数都必须赋值 C.其前、后所有参数都必须赋值D.其前、后所有参数都不必赋值 8.设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是(C) A.int m=max(22,max(59,70));B.int m=max(max(22,59),70); C.int m=max(22,59,70);D.int m=max(59,max(22,70)); 9.设存在函数int min(int,int)返回两参数中较小值,若求15,26,47三者中最小值,下列表达式中错误的是(B) A.int m=min(min(15,26),min(15,47)); B.int m=min(15,26,47); C.int m=min(15,min(47,26)); D.int m=min(min(47,26),16); 13.函数int&min(int&,int&)返回参数中较小者,设有两整型变量int a=10;int b=15; 在执行语句min(a,b)--;之后,a,b值分别为(B) A.9,14 B.9,15 C.10,14 D.10,15 16.设函数void swap(int&,int&)将交换两形参的值,如两整型变量int a=10;int b=15;则执行swap(a,b)后,a、b值分别为(C) A.10,10 B.10,15 C.15,10 D.15,15

C语言期末上机考试题及答案

C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;i

C语言习题及参考答案

C语言习题集 习题一 一.填空题 1.C程序是由(函数)构成的,一个C程序中至少包含(main函数)。因此,( 函数) 是C程序的基本单位。 2.C程序注释是由( /*) 和( */ ) 所界定的文字信息组成的。3.函数体一般包括( 变量声明) 和( 语句) 。 二.判断题 1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。【错】 2.main函数必须写在一个C程序的最前面。【错】 3.一个C程序可以包含若干的函数。【对】 4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。【对】 5.C程序的注释只能是一行。【错】 6.C程序的注释不能是中文文字信息。【错】 8.可以使用Visual C++ 6.来编译和连接一个C程序。【对】 9.可以使用Visual C++ 6.来运行一个C程序。【对】 10.可以使用Visual C++ 6.来实时调试(即动态调试)一个C程序。【对】三.简答题 1.写出一个C程序的基本结构。 2.简要叙述使用Visual C++ 6.0编译和运行一个程序的步骤。 四.编程题 1.提高题:参照课本例1.1,试编写一个C程序,输出如下信息。(提示:使用键盘上的一些符号)。 2.提高题:试编写一个C程序,输出如下信息。 ********************** *** @ @ *** *** @ *** ********************** 试试看,可以输出其他组合图案吗?

习题二 一.选择题 1、合法的字符常量是(ACD)。 A)…\t?B) “A” C)…a?D)?\x32? 2、合法的字符常量是( D) 。 A)…\084?B) …\84? C)…ab?D)?\x43? 3、(B)是C语言提供的合法的数据类型关键字。 A)Float B)signed C)integer D)Char 4、在以下各组标识符中,合法的标识符是((4))。 (1)A)B01 B)table_1 C)0_t D)k% (2)A)Fast_ B)void C)pbl D) (3)A)xy_ B)longdouble C)*p D)CHAR ( 4 ) A) sj B) Int C)_xy D)w_y23 5、属于合法的C语言长整型常量的是(BD)。 A)5876273 B)0L C)2E10 D)(long)5876273 6、下面选项中,不是合法整型常量的是(B )。 A)160 B)-0xcdg C)-01 D)-0x48a 7、判断int x = 0xaffbc;x的结果是(D)。 A)赋值非法B)溢出C)为affb D)为affbc 8、下面选项中,均是合法浮点数的是(B)。 A)+1e+1 B)-.60 C)123e D)-e3 A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4 A)03e2 B)-8e5 C)+2e-1 D)5.e-0 9、在C语言中,要求参加运算的数必须时整数的运算符是(C)。 A)/ B)* C)% D) = 10、在C语言中,字符型数据在内存中以(D)形式存放。 A)原码B)BCD码C)反码D)ASCII码 11、下列语句中,符合语法的赋值语句是(C)。 A)a=7+b+c=a+7;B)a=7+b++=a+7; C)a=(7+b,b++,a+7);D)a=7+b,c=a+7; 12、是非法的C语言转义字符(B )。 A)…\b?B)…\0xf? C)…\037? D)… \?? 13、对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,( B )是正确的。A)语法错误B)f为5.0 C)f为0.0 D)f为2.0 14、与代数式(x*y)/(u*v) 不等价的C语言表达式是(A )。 A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y 15、在C语言中,数字029是一个(D)。

(完整版)C语言选择题(附答案)

第一单元C语言概述 一、选择题 1、C语言中主函数的个数为(A)个。 A)1 B)2 C)无穷个D)任意个 2、以下关于C语言描述错误的是(D)。 A)一个C程序总是从main函数开始执行T B)每个语句和数据声明的最后必须有一个分号T C)C语言的注释符是以“/*”开始并以“*/”结束的T D)一个C程序可以包含多个main函数F 3、C 语言源程序文件后缀为(C )。 A).EXE B).OBJ C).C D).ASM 4、C语言是由(C )组成的。 A)子程序B)主程序与子程序C)函数D)过程 5、C语言属于(B )语言 A)机器语言B)汇编语言C)高级语言D)面向对象语言 第二单元C语言基础 一、选择题 1、C语言中普通整型变量int在内存中占(B )字节。 A)1 B)2 C)3 D)4 2、下列不是C语言基本数据类型的是(A )。 A)字符型B) 整型 C) 浮点型D) 结构体 3、有关自增、自减运算,以下只有(D )是正确的。 A) ---f B) ++78 C) a—b++ D) d++ 4、已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (AB)的值是(A )。 A)0 B)10 C)1 D)5

5、若有x=1,y=2,z=3,则表达式(x=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 7、判断整型变量digit是否为数字的正确表达式是(C )。 A) ‘0’<=ch<=‘9’B) (ch>=‘0’)&(ch<=‘9’) C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch) 8、一个C程序的执行是从(A )。 A)本程序的main函数开始,到main函数结柬 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 9、在以下标识符中,合法的是(C ) A)if B)0xy C)_xy D)case 10、C语言中各种类型的数据其实决定了占用内存的字节数。float占(C )。 A)一字节B)二字节C)四字节D)八字节 11、下列各选项中,(A )是有效的标识符。 A)ab B)3day C)day-3 D)#abc 12、以下叙述正确的是(C ) A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中不允许a=10这种赋值。 C) 在C程序中,%是只能用于整数运算的运算符 D) 在C程序中,无论是整数还是实数,没有什么区别 13、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( B )。 A)132↙B)1,3,2↙ C)a=1 b=3 c=2↙D)a=1,b=3,c=2↙ 14、设整型变量a为5,使b不为2的表达式是( C )。 A)b = a/2 B)b = 6-(--a) C)b=a%2 D)b=a>3?2:1

相关文档