文档库 最新最全的文档下载
当前位置:文档库 › 《C语言程序设计》练习题

《C语言程序设计》练习题

《C语言程序设计》练习题
《C语言程序设计》练习题

《C程序设计》练习题

一、单项选择题

导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。(注:选用普通整型数据占用2个字节的c编译器。如Turbo C 2.0 、Win-TC、Turbo C++ 3.0)

【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) iam C) Pxq D) str_l

??? _3d one_half My->book Cpp

??? oodbs tart$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) 同一个运算符号在不同的场合可以有不同的含义

【1.8】在C语言中,错误的int类型(长度为2字节)的常数是。

A) 32768 B) 0 C) 037 D) 0xAF

【1.9】执行语句printf("%x", -1); (int类型长度为2字节)屏幕显示____。

A) -1 B) 1 C) -ffff D) ffff

【1.10】已知long i=32768; 执行语句printf("%d", i); 屏幕显示____。

A) -1 B) -32768 C) 1 D) 32768

【1.11】已知long i=65539;

执行语句printf("%d", i); 屏幕显示____。

A) 65539 B) -3 C) 3 D) 程序不能执行

A) 1111 1111 1111 1000 B) 1000 0000 0000 1000

C) 0000 0000 0000 1000 D) 1111 1111 1111 0111

【1.13】C语言中字符型(char)数据在内存中的存储形式是____。

A) 原码 B) 补码 C) 反码 D) ASCII 码

【1.14】将字符g 赋给字符变量c ,正确的表达式是 。

A) c=\147 B) c="\147" C) c='\147' D) c='0147'

【1.15】下列转义字符中错误的一个是____。

A) '\000' B) '\0014' C) '\x111' D) '\2'

【1.16】将空格符赋给字符变量c ,正确的赋值语句是____。

A) c='\0' B) c=NULL C) c=0 D) c=32

【1.17】已知:char a='\70'; 则变量a 中 。

A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明非法

【1.18】字符串"\"EOF\n=-\61\""的长度是____。

A) 8 B) 9 C) 14 D) 非法字符串

【1.19】字符串""的长度是____。

A) 0 B) 1 C) 2 D) 非法字符串

【1.20】已知:char a; int b; float c; double d;

执行语句"c=a+b+c+d; "后,变量c 的数据类型是 。

A) int B) char C) float D) double

【1.21】温度华氏和摄氏的关系是:)32(9

5-=F C 。已知:float C, F; 由华氏求摄氏的正确的赋值表达式是____。

A) C=5/9(F-32) B) C=5*(F-32)/9

C) C=5/9*(F-32) D) 三个表达式都正确

【1.22】逗号表达式"(a=3*5, a*4), a+15"的值是____。

A) 15 B) 60 C) 30 D) 不确定

【1.23】如果int a=1, b=2, c=3, d=4; 则条件表达式"a

A) 1 B) 2 C) 3 D) 4

【1.24】为求出s=10!的值,则变量s 的类型应当为 。

A) int B) unsigned C) long D) 以上三种类型均可

【1.25】已知int i=10; 表达式"20-0<=i<=9"的值是____。

A) 0 B) 1 C) 19 D) 20

【1.26】已知int x=1, y; 执行下述语句后变量x 的值是____。

y=++x>5&&++x<10; A) 1 B) 2 C) 3 D) 4

【1.27】为判断字符变量c 的值不是数字也不是字母时,应采用下述表达式____。

A) c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122

B) !(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)

C) c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122

D) !(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)

【1.28】已知 int a[3][2]={3, 2, 1};

则表达式"a[0][0]/a[0][1]/a[0][2]"的值是____。

A) 0.166667 B) 1 C) 0 D) 错误的表达式

【1.29】已知 int x=1, y=1, z=1;

表达式"x+++y+++z++"的值是____。

【1.30】已知int x=5, y=5, z=5; 执行语句x%=y+z;

后,x的值是____。

A) 0 B) 1 C) 5 D) 6

【1.31】使用语句scanf("x=%f, y=%f", &x, &y);

输入变量x、y的值(□代表空格),正确的输入是____。

A) 1.25, 2.4 B) 1.25□2.4 C) x=1.25, y=2.4 D) x=1.25□y=2.4

【1.32】下列循环语句中有语法错误的是____。

A) while(x=y) 5; B) while(0) ;

C) do 2; while(x==b); D) do x++ while(x==10);

【1.33】已知int x=(1, 2, 3, 4); 变量x的值是____。

A) 1 B) 2 C) 3 D) 4

【1.34】表达式sizeof(double)是。

A) 函数调用B) double型表达式C) int型表达式D) 非法表达式

【1.35】已知:int x, y; double z;

则以下语句中错误的函数调用是。

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

【1.36】与条件表达式"(n)?(c++):(c--)"中的表达式(n)等价的表达式是____。

A) (n==0) B) (n==1) C) (n!=0) D) (n!=1)

【1.37】已知int i=1, j=0; 执行下面语句后j的值是____。

while(i)

switch(i)

{ case 1: i+=1; j++; break;

case 2: i+=2; j++; break;

case 3: i+=3; j ++; break;

default: i--; j++; break;

}

A) 1 B) 2 C) 3 D) 死循环

【1.38】求取满足式12+22+32+ ……+n2≤1000的n,

正确的语句是____。

A) for(i=1, s=0; (s=s+i*i)<=1000; n=i++) ;

B) for(i=1, s=0; (s=s+i*i)<=1000; n=++i) ;

C) for(i=1, s=0; (s=s+i*++i)<=1000; n=i) ;

D) for(i=1, s=0; (s=s+i*i++)<=1000; n=i) ;

【1.39】下面的for语句。

for(x=0, y=10; (y>0)&&(x<4); x++, y-- ) ;

A) 是无限循环B) 循环次数不定

C) 循环执行4次D) 循环执行3次

【1.40】已知int i=1; 执行语句while (i++<4) ;

后,变量i的值为____。

A) 3 B) 4 C) 5 D) 6

【1.41】已知int x=12, y=3; 执行下述程序后,

do

{ x/=y--;

}while(x>y);

A) 1 B) 2 C) 3 D) 程序运行有错误

【1.42】已知

char a[][20]={"Beijing", "shanghai", "tianjin", "chongqing"}

;

语句printf("%c", a[30]); 的输出是____。

A) <空格> B) n C) 不定D) 数组定义有误

【1.43】若用数组名作为函数调用时的实参,则实际上传递给形参的是。

A) 数组首地址B) 数组的第一个元素值

C) 数组中全部元素的值D) 数组元素的个数

【1.44】对二维数组的正确说明是____。

A) int a[][]={1, 2, 3, 4, 5, 6}; B) int a[2][]={1, 2, 3, 4, 5, 6};

C) int a[][3]={1, 2, 3, 4, 5, 6}; D) int a[2, 3]={1, 2, 3, 4, 5, 6};

【1.45】对字符数组s赋值, 不合法的一个是____。

A) char s[]="Beijing";

B) char s[20]={"beijing"};

C) char s[20]; s="Beijing";

D) char s[20]={'B', 'e', 'i', 'j', 'i', 'n', 'g'};

【1.46】对字符数组str赋初值,

str不能作为字符串使用的一个是____。

A) char str[]="shanghai";

B) char str[]={"shanghai"};

C) char str[9]={'s', 'h', 'a', 'n', 'g', 'h', 'a', 'i'};

D) char str[8]={ 's', 'h', 'a', 'n', 'g', 'h', 'a', 'i'};

【1.47】如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为____。

A) 静态变量B) 动态变量C) 外部变量D) 内部变量

【1.48】在一个C源程序文件中, ?若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要使用的存储类别是。

A) extern B) register C) auto D) static

【1.49】在C语言中,函数的数据类型是指____。

A) 函数返回值的数据类型B) 函数形参的数据类型

C) 调用该函数时的实参的数据类型D) 任意指定的数据类型

【1.50】已知如下定义的函数:

fun1(a)

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

}

则该函数的数据类型是____。

A) 与参数a的类型相同B) void型

C) 没有返回值D) 无法确定

【1.51】定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是____。

A) swapa(int x, int y) B) swapb(int *x, int *y)

temp=x; x=y; y=temp; temp=x; x=y; y=temp;

} }

C) swapc(int *x, int *y) D) swapd(int *x, int *y)

{ int temp; { int *temp;

temp=*x; *x=*y; *y=temp; temp=x; x=y; y=temp;

} }

【1.52】求一个角的正弦函数值的平方。能够实现此功能的函数是____。

A) sqofsina(float x)

{ return(sin(x)*sin(x));

}

B) double sqofsinb(float x)

{ return(sin((double)x)*sin((double)x));

}

C) double sqofsinc(x)

{ return(((sin(x)*sin(x));

}

D) sqofsind(float x)

{ return(double(sin(x)*sin(x)));

【1.53】一个函数内有数据类型说明语句如下:

double x, y, z(10);

关于此语句的解释,下面说法正确的是____。

A) z是一个数组,它有10个元素。

B) z是一个函数,小括号内的10是它的实参的值。

C) z是一个变量,小括号内的10是它的初值。

D) 语句中有错误。

【1.54】已知函数定义如下:

float fun1(int x, int y)

{ float z;

z=(float)x/y;

return(z);

}

主调函数中有int a=1, b=0; 可以正确调用此函数的语句是____。

A) printf("%f", fun1(a, b)); B) printf("%f", fun1(&a, &b));

C) printf("%f", fun1(*a, *b)); D) 调用时发生错误

【1.55】下面函数的功能是____。

void a(char s1[],char s2[])

{ while(*s2++=*s1++) ;

}

A) 字符串比较B) 字符串复制C) 字符串连接D) 字符串反向【1.56】在下列结论中,只有一个是错误的,它是___ 。

A) C语言允许函数的递归调用

B) C语言中的continue语句,可以通过改变程序的结构而省略

C) 有些递归程序是不能用非递归算法实现的

D) C语言中不允许在函数中再定义函数

A) p是一个指向一维数组的指针变量

B) p是指针变量,指向一个整型数据

C) p是一个指向函数的指针,该函数的返回值是一个整型

D) 以上都不对

【1.58】设有说明int (*p)[4]; 其中的标识符p是。

A) 4个指向整型变量的指针变量

B) 指向4个整型变量的函数指针

C) 一个指向具有4个整型元素的一维数组的指针

D) 具有4个指向整型变量的指针元素的一维指针数组

【1.59】已知:char s[10], *p=s, 则在下列语句中,错误的语句是。

A) p=s+5; B) s=p+s; C) s[2]=p[4]; D) *p=s[0];

【1.60】已知:char s[100]; int i; 则引用数组元素的错误的形式是。

A) s[i+10] B) *(s+i) C) *(i+s) D) *((s++)+i)

【1.61】已知:char s[6], *ps=s; 则正确的赋值语句是。

A) s="12345"; B) *s="12345"; C) ps="12345"; D) *ps="12345";

【1.62】已知:int a[4][3]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

int (*ptr)[3]=a, *p=a[0];

则以下能够正确表示数组元素a[1][2]的表达式是。

A) *(*(a+1)+2) B) *(*(p+5)) C) (*ptr+1)+2 D) *((ptr+1)[2])

【1.63】已知:int a[ ]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, *p=a; 则值为3的表达式是。

A) p+=2, *(p++) B) p+=2, *++p C) p+=2, (*p)++ D) p+=2, ++*p

【1.64】已知:int a[]={1, 2, 3, 4}, y, *p=a; 则执行语句y = (*++p)--; 之后, 数组a各元素的值变为______。

A) 0, 1, 3, 4 B) 1, 1, 3, 4 C) 1, 2, 2, 4 D) 1, 2, 3, 3

变量y的值是____。

A) 1 B) 2 C) 3 D) 4

【1.65】已知:int a[ ]={1, 3, 5, 7}, y , *p= a; 为使变量y的值为3,下列语句正确的是____。

A) y=++*p++; B) y=++(*p++); C) y=(++*p)++; D) y=(*++p)++;

【1.66】已知:int x[ ]={ 1, 3, 5, 7, 9, 11 }, *ptr=x; 则能够正确引用数组元素的语句是。

A) x B) *(ptr--) C) x[6] D) *(--ptr)

【1.67】函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是。

A) void funa (int *x, int *y) B) void funb (int x, int y)

{ int *p; { int t;

p=x; *x=*y; *y=*p; t=x; x=y; y=t;

} }

C) void func (int *x, int *y) D) void func (int *x, int *y)

{ *x=*y; *y=*x; { *x=*x+*y; *y=*x-*y; *x=*x-*y;

} }

【1.68】有定义如下:

struct sk

{ int a;

float b;

}data , *p;

A)(*).data.a B) (*p).a C) p->data.a D) p.data.a 【1.69】已知:

struct st

{ int n;

struct st *next;

};

static struct st a[3]={1, &a[1], 3, &a[2], 5, &a[0]}, *p;

如果下述语句的显示是2,则对p的赋值是____。

printf("%d", ++(p->next->n));

A) p=&a[0]; B) p=&a[1]; C) p=&a[2]; D) p=&a[3]; 【1.70】已知:

struct person

{ char name[10];

int age;

}class[10]={"LiMing", 29, "ZhangHong", 21, "WangFang", 22}; 下述表达式中,值为72的一个是____。

A) class[0]->age + class[1]->age+ class[2]->age

B) class[1].name[5]

C) person[1].name[5]

D) clase->name[5]

【1.71】已知:

struct

{ int i;

char c;

float a;

}test;

则sizeof(test)的值是。

A) 4 B) 5 C) 6 D) 7

【1.72】已知:

union

{ int i;

char c;

float a;

}test;

则sizeof(test)的值是。

A) 4 B) 5 C) 6 D) 7

【1.73】已知:

union u_type

{ int i;

char ch;

float a;

}temp;

现在执行"temp.i=266; printf("%d", temp.ch)"的结果是。

A) 266 B) 256 C) 10 D) 1

struct dent

{ int n;

int *m;

};

int a=1, b=2, c=3;

struct dent s[3] = { {101, &a}, {102, &b}, {103, &c} };

struct dent *p=s;

则以下表达式中值为2的是。

A) (p++)->m B) *(p++)->m C) (*p).m D) *(++p)->m

【1.75】若有以下说明语句,则对结构变量pup中sex域的正确引用是。

struct pupil

{ char name[20];

int sex;

}pup, *p;

p=&pup;

A) p.pup.sex B) p->pup.sex C) (*p).pup.sex D) (*p).sex

【1.76】以下对结构变量stul中成员age的非法引用是。

struct student

{ int age;

int num;

}stu1, *p;

p=&stu1;

A) stu1.age B) student.age C) p->age D) (*p).age

【1.77】若有以下定义和语句:

union data

{ int i;

char c;

float f;

}a;

int n;

则以下语句正确的是。A) a=5; B) a={2, 'a', 1.2}; C) printf("%d\n", a.i); D) n=a; 【1.78】已知enum week {sun, mon, tue, wed, thu, fri, sat}day; 则正确的赋值语句是____。A) sun=0; B) san=day; C) sun=mon; D) day=sun;

【1.79】已知enum color {red, yellow=2, blue, white, black}ren; 执行下述语句的输出结果是____。

printf("%d", ren=white);

A) 0 B) 1 C) 3 D) 4

【1.80】下述关于枚举类型名的定义中,正确的是____。

A) enem a={ one, two, three }; B) enem a { one=9, two=-1, three };

C) enem a={"one", "two", "three"}; D) enem a {"one", "two", "three"};

【1.81】已知宏定义

#define N 3

#define Y(n) ((N+1)*n)

执行语句z=2*(N+Y(5+1)); 后,变量z的值是____。

【1.82】已知宏定义#define SQ(x) x*x, 执行语句printf("%d", 10/SQ(3)); 后的输出结果是____。

A) 1 B) 3 C) 9 D) 10

【1.83】已知宏定义如下:

#define PR printf

#define NL "\n"

#define D "%d"

#define D1 D NL

若程序中的语句是PR(D1, a); 经预处理后展开为____。

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

C) printf("%d""\n", a); D) 原语句错误

【单项选择题参考答案】

【1.1】答案: A

注释:int是C语言的关键字

【1.2】答案: B

【1.3】答案:A

【1.4】答案:B

注释:include是预处理命令; scanf是函数名; type不是C语言的关键字。

【1.5】答案:D

【1.6】答案:D

【1.7】答案:A

【1.8】答案:A

注释:int型表示整数的范围是-32768~32767。

【1.9】答案:D

注释:整型常量-1在计算机中表示为补码1111 1111 1111 1111,用十六进制显示这个数时,最左边的1不会被解释为符号位,而是与右边其它位共同转换为十六进制数。

【1.10】答案:B

注释:长整型数32768在计算机内的表示是1000 0000 0000 0000,以一般整型进行输出时,此数恰是-32768的补码。

【1.11】答案:C

注释:长整型数65539在计算机内的表示是0001 0000 0000 0000 0011,以一般整型进行输出时,仅将右侧16位二进制数转换为十进制数。

【1.12】答案:A

注释:C语言中,int型的负数是采用补码表示的。

【1.13】答案:D

【1.14】答案:C

注释:变量c是字符型,可用字符常量为它赋值。字符常量必须用单引号括起来,所以B是错误的; 在单引号或双引号内的反斜线'\'用于表示转义字符,A选项在无引号时使用反斜线是错误的; C选项单引号内出现反斜线表示它与后面的数字组成一个转义字符; 单引号只允许括起一个字符,D选项在单引号内出现4个字符,是错误的。

【1.15】答案:C

【1.16】答案:D

注释:空字符和空格符是不同的两个字符,空格符的ASCII码值是32,空字符的ASCII值是0。【1.17】答案:A

【1.20】答案:C

【1.21】答案:B

注释:单纯从C语言语法来说,选项B、C都是正确的,但是选项C中第一个运算的两个对象都是整型常数,其结果也是整型数0, 最后的运算结果也就是0了。

【1.22】答案:C

【1.23】答案:A

注释:将条件表达式增加一个括号,此式变为a

【1.24】答案:C

【1.25】答案:B

【1.26】答案:B

注释:当通过一个运算对象即可决定逻辑运算&&的结果时,则对另一个运算对象不做处理。【1.27】答案:D

【1.28】答案:B

注释:数组元素在内存中按行排列,此数组的前3个元素的值分别是3、2、1,表达式中虽然数组下标的写法似乎每行有3个元素,和定义时的3行2列不一致,但是C语言引用数组元素时是根据数组的首地址和给出的下标进行运算决定元素的地址。题中表达式引用了数组前3个元素。

【1.29】答案: A

【1.30】答案:C

【1.31】答案:C

【1.32】答案:D

【1.33】答案:D

【1.34】答案:C

【1.35】答案:D

【1.36】答案:C

注释:在C语言中,经常用一个变量来作为逻辑表达式,其含义就是:当变量的值不为0时关系成立。

【1.37】答案:D

注释:break语句仅可跳出switch语句,不会跳出while循环,这是一个死循环。

【1.38】答案:A

【1.39】答案:C

【1.40】答案:C

【1.41】答案:D

注释:当除数y为0时,程序发生溢出错误。

【1.42】答案:C

【1.43】答案:A

【1.44】答案:C

【1.45】答案:C

注释:答案C的赋值号左侧是数组s的首地址,是一个常量,赋值号右侧是一个字符串常量,不可能将一个字符串常量赋给一个地址常量。

【1.46】答案:D

【1.48】答案:D

注释:这里首先要明确一些基本概念。在C语言中,程序与文件是不同的概念,一个程序可以由一个文件组成,也可以由多个文件组成; 一个文件中又可以包含多个函数; 函数是构成C程序的基本单位。

变量的作用域因变量的存储类型不同而不同。auto和register类型的变量的作用域是说明变量的当前函数; 外部变量的作用域是整个程序,即外部变量的作用域可以跨越多个文件; 内部静态变量(定义在一个函数内部的static型的变量)的作用域是当前函数,外部静态变量(定义在函数外面的static型的变量)的作用域是当前文件,即可以跨越同一文件中的不同函数。

【1.49】答案:A

【1.50】答案:A

注释:它和参数a一样,数据类型说明被省略,按照C语言的规定,在这种情况下,表示它们是int型。

【1.51】答案:C

注释:函数swapa是值传递,函数的执行结果不能返回; 函数swapb中变量temp不是指针变量,所以它不能接受地址量,用指针变量x为它赋值是不对的; 函数swap中虽然指针变量交换了地址,即它们的指向的目标变量进行了交换,但是目标变量并没有行值的交换。

【1.52】答案:B

【1.53】答案:D

【1.54】答案:D

注释:主调函数中b=0,在执行fun1函数里的除法时发生溢出错误。

【1.55】答案:B

【1.56】答案:C

【1.57】答案:C

注释:要注意与说明语句"int (*p)[ ]; "的区别。说明语句"int (*p)[ ]; "说明的是一个指向数组的指针。

【1.58】答案:C

注释:题干中由于*和p被小括号括起,所以p应被解释为一个指针,而后的下标运算符[]说明所指向的对象是一个有4个int型元素的一维数组; 如果是int (*p)(), 则是指向函数的指针。对于int *p[4], 则根据运算符的优先级,先考虑p和[]运算符的关系,所以它就是一个指针数组了。【1.59】答案:B

注释:选项B有两处错误,一是数组名是常量,不能出现的赋值好的左侧,二是指针变量只能和整数做加,不能和作为地址常量的数组名相加。

【1.60】答案:D

注释:s作为数组名是地址常量,而s++是s=s+1,C语言不允许对常量进行赋值。

【1.61】答案:C

【1.62】答案:A

注释:p是一个一级指针,选项B中对它进行了两次*运算是错误的。ptr是一个指向一维数组的指针,它所指向的数组有三个元素,对于这样一个指针,对它进行两次**运算才能取出地址单元中所存的数据,C选项中*ptr表示数组第一行的首地址,该地址是一维数组的地址,+3表示加上三个它所指向的数据类型的长度,所以(*ptr+1)+2是数组中数值4的地址。根据以上分析,选项D对ptr进行了两次地址操作(*和[]),所以结果应是数据,但是它加1后指向数组第二行,根据后面[]中2它的地址增加两个一维数组的长度,就指向数组的最后一行,再做*运算就是数10,即a[3][0]。

【1.65】答案:D

【1.66】答案:B

【1.67】答案:D

注释:答案D是另一种交换两个变量值的算法。

【1.68】答案:B

【1.69】答案:C

注释:使用C对p进行赋值,则p->next是a[0]的地址,引用其成员n再做前增1运算,结果就是2。

【1.70】答案:B

【1.71】答案:D

【1.72】答案:A

【1.73】答案:C

注释:联合变量temp的成员是占用同一存储单元,它的长度是4个字节。266的二进制表示是100001010,存放在存储单元的低端两个字节,如下图:

高字节

0 0 0 0 0 0 0 1

低字节0 0 0 0 1 0 1 0

引用temp.ch进行输出,只取最低的第一个字节。

【1.74】答案:D

注释:由于结构指针指向了结构数组的0号元素,所以表达式(p++)->m的含义是先取出m(变量a的地址),然后指针p加1。表达式*(p++)->m的含义是先取出m的内容(变量a的值),然后指针p再加1。表达式(*p).m的含义是取出m(变量a的地址)。表达式*(++p)->m的含义是先将指针p加1,然后再取m的内容(变量b的值)。

【1.75】答案:D

【1.76】答案:B

【1.77】答案:C

【1.78】答案:D

【1.79】答案:D

【1.80】答案:B

【1.81】答案:B

注释:语句z=2*(N+Y(5+1)引用了两个宏定义。C语言是区分字母大小的,第二个宏定义中的N 直接用3替换,用5+1替换n,则有z=2*(3+(3+1)*5+1); 结果是48。注意对于带参数的宏亦是直接的文本替换,此例中n用5+1去替换,结果是(N+1)*5+1,而不是(N+1)*(5+1)。

【1.82】答案:C

注释:宏替换后的结果是printf("%d", 10/3*3)。

【1.83】答案:C

二、阅读程序题

导读:学会阅读程序对于初学者来说很重要,一方面可以巩固所学的语法知识,另一方面通过阅读别人写好的程序来打开自己的思路,就所谓见多识广。读者通过阅读理解程序,从给出的四个备选参考答案中,选择程序的正确输出。如果选择有误,就要认真分析原因,是概念方面的错误还是对程序逻辑理解不对,从而加深对语法规则的理解,提高程序设计能力。程序设计语言是开发程序的一个工具,学习语言的目的是为了编写程序来解决实际问题,所以特别提倡

【2.1】以下程序的输出结果是。#include void main( )

{ float a;

a=1/100000000;

printf("%g", a);

}

A) 0.00000e+00 B) 0.0 C) 1.00000e-07 D) 0

【2.2】下面程序的输出结果是____。

#include

void main( )

{ int x=10;

{ int x=20;

printf ("%d, ", x);

}

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

}

A) 10,20 B) 20,10 C) 10,10 D) 20,20

【2.3】以下程序的输出结果是____。

#include

void main()

{ unsigned int n;

int i=-521;

n=i;

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

}

A) n=-521 B) n=521 C) n=65015 D) n=102170103 【2.4】以下程序的输出结果是。#include void main( )

{ int x=10, y=10; printf("%d %d\n", x――, ――y); }

A) 10 10 B) 9 9 C) 9 10 D) 10 9

【2.5】以下程序的输出结果是____。

#include

void main()

{ int n=1;

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

}

A) 1 1 1 B) 1 0 1 C) 1 1 0 D) 1 2 1

【2.6】以下程序的输出结果是____。

#include

void main()

{ int a=1;

char c='a';

float f=2.0;

}

A) 0 B) 1

【2.7】下面程序的输出结果是____。

#include

void main()

{ char s[12]= "a book";

printf("%.4s", s);

}

A) a book! B) a book!<四个空格》

C) a bo D) 格式描述错误,输出不确定

【2.8】下面程序的输出结果是____。

#include

void main()

{ int a, b;

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

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

}

A) a=12 b=34 B) a=123 b=45 C) a=12 b=345 D) 语句有错误【2.9】以下程序段的输出结果是。int a=10, b=50, c=30;

if(a>b)

a=b;

b=c;

c=a;

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

A) a=10 b=50 c=10 B) a=10 b=30 c=10

C) a=50 b=30 c=10 D) a=50 b=30 c=50

【2.10】以下程序的输出结果是。#include

void main()

{ int a=0, b=1, c=0, d=20;

if(a) d=d-10;

else if(!b)

if(!c) d=15;

else d=25;

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

}

A) d=10 B) d=15 C) d=20 D) d=25

【2.11】下面程序的输出结果为。

#include

void main()

{ int a=1, b=0;

switch(a)

{ case 1: switch (b)

{ case 0: printf("**0**"); break;

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

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

}

}

A) **0** B) **0****2** C) **0****1****2** D) 有语法错误【2.12】以下程序的输出结果是。#include

void main()

{ char *s="12134211";

int v1=0, v2=0, v3=0, v4=0, k;

for(k=0; s[k]; k++)

switch(s[k])

{ case '1': v1++;

case '3': v3++;

case '2': v2++;

default: v4++;

}

printf("v1=%d, v2=%d, v3=%d, v4=%d\n", v1, v2, v3, v4);

}

A) v1=4, v2=2, v3=1, v4=1 B) v1=4, v2=9, v3=3, v4=1

C) v1=5, v2=8, v3=6, v4=1 D) v1=4, v2=7, v3=5, v4=8

【2.13】下面程序的输出是。

#include

void 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

【2.14】下面程序的输出是____。

#include

void main()

{ int num=0;

while(num<=2)

{ num++;

printf("%d", num);

}

}

A) 1 B) 1234 C) 123 D) 12

【2.15】下面程序的输出结果是____。

void main()

{ int a=1, b=0;

do

{ switch(a)

{ case 1: b=1; break;

case 2: b=2; break;

default : b=0;

}

b=a+b;

}while(!b);

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

}

A) 1, 2 B) 2, 1 C) 1, 1 D) 2, 2

【2.16】从键盘上输入"446755"时,下面程序的输出是____。#include

void main()

{ int c;

while((c=getchar())!='\n')

switch(c -'2')

{ case 0:

case 1: putchar(c+4);

case 2: putchar(c+4); break;

case 3: putchar(c+3);

default: putchar(c+2); break;

}

printf("\n");

}

A) 888988 B) 668966 C) 88898787 D) 66898787

【2.17】下面程序的输出结果是____。

#include

void main()

{ int k=0;

char c='A';

do

{ switch(c++)

{ case 'A': k++; break;

case 'B': k--;

case 'C': k+=2; break;

case 'D': k=k%2; contiue;

case 'E': k=k+10; break;

default: k=k/3;

}

k++;

}while(c<'C') ;

A) k=1 B) k=2 C) k=3 D) k=4

【2.18】下面程序的输出结果是____。

#include

void main()

{ int x, i;

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

{ x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf("%d ", x);

}

}

A) 39 81 B) 42 84 C) 26 68 D) 28 70

【2.19】下面程序的输出结果是____。

#include

void main( )

{ int i, k, a[10], p[3];

k=5;

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

a[i]=i;

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

p[i]=a[i*(i+1)];

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

k+=p[i]*2;

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

}

A) 20 B) 21 C) 22 D) 23

【2.20】假定从键盘上输入"3.6, 2.4<回车>", 下面程序的输出是____。#include

#include

void main()

{ float x, y, z;

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

z=x/y;

while(1)

{ if(fabs(z)>1.0)

{ x=y;

y=z;

z=x/y;

}

else break;

}

A) 1.500000 B) 1.600000 C) 2.000000 D) 2.400000 【2.21】下面程序的输出结果是____。

#include

void main()

{ int i, j, x=0;

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

{ x++;

for(j=0; j<-3; j++)

{ if(j%2)

continue;

x++;

}

x++;

}

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

}

A) x=4 B) x=8 C) x=6 D) x=12

【2.22】下面程序的输出结果是____。

#include

void main()

{ int i, j, k=10;

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

{ k++;

{ int k=0;

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

{ if(j%2) continue;

k++;

}

}

k++;

}

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

}

A) k=4 B) k=8 C) k=14 D) k=18

【2.23】下面程序的输出结果是____。

#include

void main( )

{ int n[3][3], i, j;

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

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

n[i][j]=i+j;

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

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

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

}

A) 14 B) 0 C) 6 D) 不确定

【2.24】下面程序的输出结果是____。

#include

void main( )

{ int a[4][5]={1, 2, 4, -4, 5, -9, 3, 6, -3, 2, 7, 8, 4}; int i, j, n;

n=9;

i=n/5;

j=n-i*5-1;

printf("a[%d][%d]=%d\n", i, j, a[i][j]);

}

A) 6 B) -3 C) 2 D) 不确定

【2.25】下面程序的输出结果是____。

#include

int m[3][3]={ {1}, {2}, {3} };

int n[3][3]={ 1, 2, 3 };

void main( )

{ printf("%d\n", m[1][0]+n[0][0] ); /* ①*/ printf("%d\n", m[0][1]+n[1][0] ); /* ②*/ }

①A) 0 B) 1 C) 2 D) 3

②A) 0 B) 1 C) 2 D) 3

【2.26】下面程序的输出结果是____。

#include

void main( )

{ char s1[50]={"some string *"}, s2[]={"test"}; printf("%s\n", strcat(s1, s2));

}

A) some string * B) test

C) some stritest D) some string *test

【2.27】下面程序的输出结果是____。

#include

int f(char *s)

{ char *p=s;

while(*p!='\0')

p++;

return(p-s);

}

void main()

{ printf("%d\n", f("ABCDEF"));

}

A) 3 B) 6 C) 8 D) 0

#include

#include

void main( )

{ char str[100] ="How do you do";

strcpy( str + strlen(str)/2, "es she");

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

}

A) How do you do B) es she C) How are you D) How does she 【2.29】下面程序的输出结果是____。

#include

int func(int a, int b)

{ int c;

c=a+b;

return(c);

}

void main()

{ int x=6, y=7, z=8, r;

r=func((x--, y++, x+y), z--);

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

}

A) 11 B) 20 C) 21 D) 31

【2.30】下面程序的输出结果是____。

#include

void fun(int *s)

{ static int j=0;

do

{ s[j]+=s[j+1];

}while(++j<2);

}

void main()

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

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

fun(a);

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

printf("%d", a[k]);

}

A) 35756 B) 23445 C) 35745 D) 12345

【2.31】下面程序的输出结果是____。

#include

int k=1;

void main( )

{ void fun(int);

int i=4;

fun(i);

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

人教版四年级数学上册大数的认识单元测试卷

蓬塘中心小学 四年级第一单元学业测评() 时间:90分钟满分:100+10分 班级:____姓名:____成绩:____ 一,填空题:(20分) 1.在数位顺序表中,从右起第五位是( )位,计数单位是( );与“千万”相邻的两个计数单位是( )和( )。 最左边的“7”在( )位上,表示7个(),最右边的7在( )位上,表示7个( )。 3.一个数由3个千万,4个十万,6个千和8个百组成,这个数写作( ),“四舍五入”到万位约是( )。 & 4.一个数的最高位是百万位,它是()位数,一个八位数的最高位是()位。 5.个、十、百、千、万……亿都是(),它们每相邻两个间的进率都是()。 6.表示物体个数的1,2,3,4,5,…都是(),一个物体也没有,用()表示。 7.计算器上的( ))键。 8. 15 7654300≈16亿=() 9 750000≈1亿=() 二,判断题;(对的打“√”,错的打“×”,10分) 1.一个数由3个千亿,6个百万组成,这个数是0000。() 2.[ 3.最小的自然数是0,最大的自然数是。() 4.小明在读3040907这个数时,将每个“0”都读了出来。() 5.算盘上,用一个上珠表示1,一个下珠表示5。() 6.万级包含的计数单位有万位、十万位、百万位、千万位。() 三,选择题。(将正确答案的序号填在括号里,10分) 1.下面个数中,一个“零”也不读的数是()。

2.个位、十位、百位、千位、万位等都是()。 , A.数位 B.位数 C.计数单位 3.一个数的千万位上的数是5,百位上的数是2,其他各位上的数都是0,这个数写作( )。 A. C. 4.在82中间添()个0,这个数就读作八百万零二。 5.下面各数中,省略亿位后面的尾数,近似值是60亿的数是( )。 四,比一比;(12分) 1./ ○里填上“>”“<”或者“=”。(6分) 2.在 98706○100910 42050○51002 ○5050000 490万○490000 二十四亿○00 98523米○10万米 3.按照从小到大的顺序排列下面各数。(6分) 50500 500500 500050 5050 60050 5005 五,把下面的表格填完整。(16分) 1.】 2.先写出横线上的数,再把它改写成用“万”做单位的数。(6分)

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

(完整版)《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

《大数的认识》单元测试题

《大数的认识》 姓名:________ 班别:________ 成绩:________ 一、填空。 1、6是一个()位数,最高位是()位。 2、一百万里面有()个十万;一亿里面有()个一百万。 3、在这个数中,从左往右数,第一个8表示8个(),第二个8 表示(),第三个8表示()。 4、一个数,千万位上是9,百位上是6,其余数位上是最小的自然 数,这个数写作(),读作()。 5、和39999相邻的两个数是()和()。 6、由7个百万、6个万、3个千、9个十组成的数,写作 (),四舍五入约等于()万。 7、自然数的个数是(),最小的自然数是()。 8、把下面各数写成用“万”或“亿”作单位 =()万00=()亿 995000≈()万78≈()亿 9、00读作(),写成用“万”做单位的数是(), 省略亿后面的尾数约等于()。 二、判断题。 1、个位、十位、百位、千位、万位……都是计数单位。() 2、亿位右边的一位是十亿位,左边的一位是千万位。() 3、读数与写数的时候,都应该从最高级开始。() 4、比800万多一万的数是810万。() 5、七亿零三十写作0。() 三、选择题。 1、数位顺序表,从右边起,每()位为一级。 A、3 B、4 C、5 2、下面数中,一个零也不读的是()。 A、5000500 B、 C、 3、七十万零二十写作()。 A、700020 B、 C、7000200 4、一个九位数,它的最高位是()位。 A、千万 B、亿 C、十亿 5、在5和6中间添( )个0,这个数变成了“五十亿零六”。 A、6 B、7 C、8 四、先分级,再读数。 0 读作:_____________________________________ 读作:_____________________________________ 00 读作:_____________________________________

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

C语言程序设计50例(经典收藏)

水仙花 #include void main() { int a,b,c,i; for( i=100;i<1000;i++) { a=i/100; b=i%100/10; c=i%10; if(a*a*a+b*b*b+c*c*c==i) { printf("\n"); } } } 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有

的排列后再去掉不满足条件的排列。 2.程序源代码: #include "stdio.h" #include "conio.h" main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } getch(); } 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按1 0%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码:

(完整版)大数的认识单元测试卷2含答案

大数的认识单元测试卷(2) 一、我来填一填(共30分,每空1分.) 1.(2分)一个数,从右边起,第五位是_________,第九位是_________. 2.(8分)万级的计数单位有_________、_________、_________、_________;万级的数位有 _________、_________、_________、_________. 3.(4分)70050000是_________位数,最高位是_________位,7表示_________,5表示_________.4.(2分)比最大的八位数多1的数是_________,比最小的八位数少1的数是_________. 5.(4分)在横线里填上“>”或“<”. 99109_________157600 777000_________78万 100110_________999999 2662531_________2662513. 6.(4分)6200000=_________万 900000000=_________万 995900≈_________万 249999000≈_________万. 7.(2分)34□780≈35万,□里最大可填_________,最小可填_________. 8.(4分)有一个数,它的亿位和万位上的数字都是7,其余各位上的数字都是0. (1)这个数写作_________; (2)这个数读作_________; (3)这个数是_________位数,最高位的计数单位是_________. 二、我来评一评(共10分,每题2分.) 9.(2分)40803069的三个0都在中间,所以都要读出来._________.(判断对错) 10.(2分)100000﹣1<99999+1_________.(判断对错) 11.(2分)149900000≈1亿._________.(判断对错) 12.(2分)在数位顺序表中,两个计数单位之间的进率都是十._________.(判断对错) 13.(2分)最小的九位数与最大的八位数相差是1._________.(判断对错) 三、我来选(共10分,每题2分.) 14.(2分)下面各数中,最大的数是() A.507043 B.500743 C.507034 15.(2分)个、十、百、千、万…是() A.计数法B.数位名称C.计数单位

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

小学数学四年级上册第一单元大数的认识 单元测试题(含答案解析)

小学数学四年级上册第一单元大数的认识单元测试题(含答案解析) 一、选择题 1.在85后添加()个0,这个数就是八千五百万 A. 4 B. 5 C. 6 D. 7 2.在“19□789≈19万”中,□里最大可填()。 A. 5 B. 4 C. 9 3.下面各数只读一个零的数是() A. 30700080000 B. 5008500 C. 4009050 4.下面数学符号使用正确的是()。 A. 5000000≈500万 B. 284999≈29万 C. 307709<307900 D. 900000001=9亿5.在85后面添()个0,这个数是八千五百万。 A. 4 B. 5 C. 6 D. 7 6.一枚1元的硬币大约重6克。照这样推算,1000枚1元硬币大约重6千克,100万枚1元硬币大约重()。 A. 600千克 B. 6吨 C. 60吨 D. 600吨7.13□0000000≈13亿,□里最大可填() A. 1 B. 2 C. 3 D. 4 8.下面各数,()一个零也不读。 A. 30047000 B. 34007000 C. 3400070 9.下面哪个数与100万最接近()。 A. 99万 B. 1001000 C. 1000001 10.由6个百万,3个万和2个千组成的数是()。 A. 6302000 B. 6032000 C. 6320000 D. 6030200 11.在3和7中间加()个0,这个数读作三十亿零七。 A. 9 B. 8 C. 7 12.下面各数只读一个零的是()。 A. 3070008000 B. 5008500 C. 4009050 D. 1095002 二、填空题 13.横线上最大能填几?请把数填在横线上。 7________953≈8万5________1999008≈5亿 14.7064000是由7个________,6个________和4个________组成的。这个数读作________。把这个数改写成用万作单位的近似数是________万。 15.最大的四位数是________,比它大1的数是________;最小的八位数是________。比它小1的数是________。 16.比最小的八位数少1的数是________,比最大的六位数多1的数是________。17.把188600四舍五入到万位约是________。 18.在横线上填上“>”、“<”或“=”。 9990000________10000000 30560000________3056万 140×5________150×4 30090700________30900007

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

c语言程序设计答案

第一章基础知识 一、填空 1. 每个C 程序都必须有且仅有一个________ 函数。 2. C 语言程序开发到执行通常要经过6 个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C 语言是由________组成的。 7. C 语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C 语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不

同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA) 、管理信息系统(MIS) 、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C 程序的执行均是由执行_________开始。15. 函数体即为包含在{ }内的部分。它分为________和为完成功能任务由若干个C 语句组成的执行部分。 16. C 语言程序中一条简单语句是以________字符作为结束符的。 17. C 语言是结构化、________的程序设计语言。

(典型题)小学数学四年级上册第一单元大数的认识 单元测试卷(含答案解析)

(典型题)小学数学四年级上册第一单元大数的认识单元测试卷(含答案解 析) 一、选择题 1.在67后面添()个0,这个数是六千七百万。 A. 4 B. 5 C. 6 D. 7 2.在85后添加()个0,这个数就是八千五百万 A. 4 B. 5 C. 6 D. 7 3.在3和300之间添上()个0,就读作三亿零三百。 A. 4 B. 5 C. 6 4.下列各数中一个零也不读的是()。 A. 6008008 B. 36007000 C. 12050043200 5.下列各数中,一个“零”也不读的是() A. 808008 B. 800808 C. 88800 D. 8000080 6.今年国庆节,永定土楼共接待国内外游客约394300人次,这个数中的两个“3”分别表示()。 A. 3个十万和3个百 B. 3个百万和3个百 C. 3个十万和3个千 D. 3个百万和3个千 7.一个数由9个百万和67个一组成,这个数是() A. 9067000 B. 9006700 C. 9000067 8.2016年广州国际马拉松赛全部项目报名人数首次达到107417人,创下了广马历年报名人数新高,把横线的数据,省略万位后面的尾数,正确的是() A. 10万 B. 11万 C. 107万 9.关于式子37□1698<3756361,□里最大能填() A. 6 B. 5 C. 4 10.下列各数中,比78万小的数是()。 A. 784500 B. 7709000 C. 7798090 D. 78455 11.下面各数中,只读一个“零”的数是()。 A. 600606 B. 66600 C. 600600 12.一个数省略最高位后面的尾数后近似数是3000,这个数最小是()。 A. 2900 B. 3001 C. 2451 二、填空题 13.一个数由6个百亿、5个十万和8个千组成,这个数是________,读作________ 14.最大的四位数是________,比它大1的数是________;最小的八位数是________。比它小1的数是________。 15.一座城市的人口数是744250人,改写成用“万”作单位的数是________人。 16.79□0269098四舍五入到亿位的近似数是80亿,那么□里最大能填________,最小能填________。 17.把下面各数改写成“万”或“亿”为单位的数。

C语言程序设计试题及答案解析[1]全解

C语言程序设计试题 第1、2、3章概述、类型、表达式 一、选择题 1、一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:() A、任意 B、第一个函数必须是主函数,其他函数任意 C、必须完全按照执行的顺序排列 D、其他函数可以任意,主函数必须在最后 2、下列四个叙述中,正确的是:() A、C程序中的所有字母都必须小写 B、C程序中的关键字必须小写,其他标示符不区分大小写 C、C程序中的所有字母都不区分大小写 D、C语言中的所有关键字必须小写 3、下列四个叙述中,错误的是:() A、一个C源程序必须有且只能有一个主函数 B、一个C源程序可以有多个函数 C、在C源程序中注释说明必须位于语句之后 D、C源程序的基本结构是函数 4、下面不是C语言合法标识符的是:() A、abc B、5n C、_4m D、x3 5、以下叙述不正确的是:() A. 分号是C语句的必要组成部分 B. C程序的注释可以写在语句的后面 C. 函数是C程序的基本单位 D. 主函数的名字不一定非用main来表示 6、C语言中允许的基本数据类型包括:() A. 整型、实型、逻辑型 B. 整型、实型、字符型 C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型 7、C语言中能用八进制表示的数据类型为:() A、字符型、整型 B、整形、实型 C、字符型、实型、双精度型 D、字符型、整型、实型、双精度型 8、下列属于C语言合法的字符常数是:() A、’\97’ B、”A” C、’\t’ D、”\0” 9、在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:() A、char

人教版-数学-四年级上册-《大数的认识》单元测试题

人教版小学四年级数学上册第一单元测试卷 《大数的认识》 姓名:________ 班别:________ 成绩:________ 一、填空。(每小题2分,共20分) 1、108879856是一个()位数,最高位是()位。 2、一百万里面有()个十万;一亿里面有()个一百万。 3、在80528580这个数中,从左往右数,第一个8表示8个(),第二个8表 示(),第三个8表示()。 4、一个数,千万位上是9,百位上是6,其余数位上是最小的自然数,这个数写 作(),读作()。 5、和39999相邻的两个数是()和()。 6、在算盘上,上方一颗珠子代表(),下方一颗珠子代表()。 7、由7个百万、6个万、3个千、9个十组成的数,写作(),四 舍五入约等于()万。 8、自然数的个数是(),最小的自然数是()。 9、把下面各数写成用“万”或“亿”作单位 89000000=()万 5000000000=()亿 995000≈()万 7421305678≈()亿 10、4265480000读作(),写成用“万”做单位的 数是(),省略亿后面的尾数约等于()。 二、判断题。(每小题2分,共10分) 1、个位、十位、百位、千位、万位……都是计数单位。() 2、亿位右边的一位是十亿位,左边的一位是千万位。() 3、读数与写数的时候,都应该从最高级开始。() 4、比800万多一万的数是810万。() 5、七亿零三十写作700000030。() 三、选择题。(每小题2分,共10分) 1、数位顺序表,从右边起,每()位为一级。 A、3 B、4 C、5 2、下面数中,一个零也不读的是()。 A、5000500 B、50050000 C、50005000 3、七十万零二十写作()。 A、700020 B、70000020 C、7000200 4、一个九位数,它的最高位是()位。 A、千万 B、亿 C、十亿 5、在5和6中间添( )个0,这个数变成了“五十亿零六”。 A、6 B、7 C、8 四、先分级,在读数。(每题3分,共15分) 603000700 读作:_____________________________________

C语言程序设计习题答案

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

c语言程序设计报告1

3 课程设计报告 题目 车票管理系统 系别 数学与计算机科学系 班级 应用数学班 姓名 学号 指导教师 束红 职称 讲师 二○一 一年 六 月

一.课程设计目的 1、进一步掌握和利用C语言进行程设计的能力; 2、进一步理解和运用结构化程序设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用流程图表示算法; 6、掌握书写程序设计开发文档的能力。 8

IV 2课程设计任务与要求 任务: (1)录入班次信息(信息用文件保存),可不定时地增加班次数据 (2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。 (3)查询路线(起点、终点):可按班次号查询 ,可按终点站查询 (4)增加及修改班次和删除班次信息 (5)售票和退票功能 当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数 退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数 要求: 1. 在处理每个题目时,要求从分析题目的需求入手,设计算法、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2. 设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。 3. 程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释 4. 每组同学需提交可独立运行的程序; 5. 每组同学需独立提交设计报告书(每组一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算); 6. 课程设计实践作为培养学生动手能力的一种手段,单独考核。 3 车票管理系统总体设计 3.1 车票管理系统总体设计思想 车票管理系统的功能:1. 录入班次2. 显示所有班次3. 查询班次4. 增加班次 5. 售票6. 退票7. 修改班次8. 删除班次9. 退出 车票管理系统软件的功能模块: (1)提供菜单界面,方便用户对程序个功能进行选择,选择要实现的功能 9

四年级上册人教版小学数学第一单元大数的认识 单元测试题(答案解析)

四年级上册人教版小学数学第一单元大数的认识单元测试题(答案解析) 一、选择题 1.在67后面添()个0,这个数是六千七百万。 A. 4 B. 5 C. 6 D. 7 2.求一个数的近似数,常用()。 A. 去尾法 B. 四舍五入法 C. 进一法 3.在47□438≈48万中,□里可以填的数是()。 A. 5~9 B. 0~5 C. 0~4 D. 1~4 4.下面数中,一个“零”都不读出来的是()。 A. 3021000 B. 3200010 C. 3201000 D. 3020100 5.一个数由9个百万和67个一组成,这个数是() A. 9067000 B. 9006700 C. 9000067 6.2016年广州国际马拉松赛全部项目报名人数首次达到107417人,创下了广马历年报名人数新高,把横线的数据,省略万位后面的尾数,正确的是() A. 10万 B. 11万 C. 107万 7.关于式子37□1698<3756361,□里最大能填() A. 6 B. 5 C. 4 8.13□0000000≈13亿,□里最大可填() A. 1 B. 2 C. 3 D. 4 9.下面三个数中,两个零都要读出来的是(). A. 300789456 B. 307089456 C. 378900456 10.十万位上的1比十位上的1多()。 A. 10 B. 10000 C. 99990 11.一个数省略最高位后面的尾数后近似数是3000,这个数最小是()。 A. 2900 B. 3001 C. 2451 12.用2、4、6、8、0组成最小的五位数是()。 A. 24680 B. 86420 C. 20468 二、填空题 13.一个数由6个百亿、5个十万和8个千组成,这个数是________,读作________ 14.2068457620是________位数,它的最高位是________位,“8”在________位上,省略“亿”后面的尾数约是________亿。 15.某一城市的人口总数省略万后面的尾数是90万,这个城市最多有________人,最少有________人。 16.要使5□9800000≈6亿,那么□里最小可以填________; 39□876≈39万,□里最大可以填________。 17.把188600四舍五入到万位约是________。 18.三千零六十万四千写作________,省略“万”后面的尾数是________万。 19.用0,0,0,1,2,3这六个数字组成一个零都不读的六位数,最大的是________,最小的是________.

相关文档