《C语言程序设计》习题集解析

《C语言程序设计》习题集解析
《C语言程序设计》习题集解析

前言

C语言是现代最流行的通用程序设计语言之一,它既具有高级程序设计语言的优点,又具有低级程序设计语言的特点,既可以用来编写系统程序,又可以用来编写应用程序。因此,C语言正在被迅速地推广和普及。

课后做些练习是有必要的,本习题集通过大量的典型习题,循序渐进地引导学生巩固各章的知识点。根据最新教学大纲,我们编排了13章的单元习题,结合各章的课时数,确定其所需的篇幅。学生可根据教师的进度完成相应习题。任课教师可以根据需要收取学生所做的试卷检查教学效果,并作为平时成绩的一个依据(分值老师自己把握)。

C语言是电子信息类专业重要的专业基础课,任课教师和学生要引起足够的重视。因为C语言是一个比较通用的高级编程语言,很多编程语言都与之相关,作为学生的第一门计算机语言课,对它学习的好坏将影响后续所有与编程相关的课程以及学生参与项目的能力。

学习C语言的较好方法就是做适量的习题和大量的编程实践。前者是为了巩固基础知识,后者则是对基础知识的灵活运用,只有当我们能够使用C语言畅通无阻地让计算机执行我们所想要做的工作时,我们才能最大限度地发挥计算机的优势,使之真正成为我们强有力的工具。

目录

第一章C语言概述 (1)

第二章程序的灵魂——算法 (3)

第三章数据类型、运算符与表达式 (4)

第四章最简单的C程序设计 (8)

第五章选择结构程序设计 (11)

第六章循环控制 (16)

第七章数组 (21)

第八章函数 (27)

第九章预处理命令 (33)

第十章指针 (35)

第十一章结构体与共用体 (41)

第十二章位运算 (47)

第十三章文件 (49)

第一章C语言概述

一、选择题

1、以下叙述中正确的是( )

A)C程序中注释部分可以出现在程序中任意合适的地方

B)花括号“{”和“}”只能作为函数体的定界符

C)构成C程序的基本单位是函数,所有函数名都可以由用户命名

D)分号是C语句之间的分隔符,不是语句的一部分

2、以下叙述中正确的是( )

A)C语言比其他语言高级

B)C语言可以不用编译就能被计算机识别执行

C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D)C语言出现得最晚,具有其他语言的一切优点

3、在一个C程序中( )

A) main函数必须出现在所有函数之前B) main函数可以在任何地方出现

C) main函数必须出现在所有函数之后D) main函数必须出现在固定位置

4、以下叙述中正确的( )

A) 构成C程序的基本单位是函数

B) 可以在一个函数中定义另一个函数

C) void main()函数必须放在其它函数之前

D) 所有被调用的函数一定要在调用之前进行定义

5、下列叙述中正确的是( )

A) C语言编译时不检查语法

B) C语言的子程序有过程和函数两种

C) C语言的函数可以嵌套定义

D) C语言所有函数都是外部函数

6、一个C程序的执行是从( )

A)本程序的main函数开始,到main函数结束

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数

C)本程序的main函数开始,到本程序文件的最后一个函数

D)本程序文件的第一个函数开始,到main函数结束

7、以下叙述正确的是( )

A) 在C程序中,main函数必须位于程序的最前面

B) C程序的每行中只能写一条语句

C) C语言本身没有输入输出语句

D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

8、以下叙述不正确的是( )

A)一个C源程序可由一个或多个函数组成

B)一个C源程序必须包含一个main函数

C)C程序的基本组成单位是函数

D)在C程序中,注释说明只能位于一条语句的后面

9、以下叙述正确的是( )

A)可以把define和if定义为用户标识符

B)可以把define定义为用户标识符,但不能把if定义为用户标识符

C)可以把if定义为用户标识符,但不能把define定义不用户标识符

D)define和if都不能定义为用户标识符

二、填空题

1、C源程序的基本单位是。

2、一个C源程序至少包含一个。

3、在C语言中,输入函数由库函数完成,输出函数由库函数完成。

三、编程题

1、编写一个简单的C程序介绍,输出以下信息:

* * * * * * * * * * * * * * * * * * * * * * * * * * *

Welcome to C Programme

* * * * * * * * * * * * * * * * * * * * * * * * * * *

2、编写一个C程序,输入整数a,b两个值,输出两个整数之差。

3、编写一个C程序,输入a、b、c 三个值,输出其中最小者。

第二章 程序的灵魂——算法

一、选择题

1、以下不能正确计算代数式)2

1(sin 312值的C 语言表达式是( ) A )1/3*sin(1/2)*sin(1/2) B )sin(0.5)*sin(0.5)/3

C )pow(sin(0.5),2)/3

D )1/3.0*pow(sin(1.0/2),2)

2、算法具有五个特性,以下选项中不属于算法特性的是( )

A )有穷性

B )简洁性

C )可行性

D )确定性

3、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是(

) A) 有零个或多个输入 B) 有零个或多个输出

C) 有穷性 D) 可行性

4、与数学式子1

23-x n x 对应的C 语言表达式是( )

A) 3*x^n(2*x-1) B) 3*x*n/(2*x-1)

C) 3*pow(x,n)*(1/(2*x-1)) D) 3*pow(n,x)/(2*x-1)

二、填空题

1、在程序中要指定数据的类型和数据的组织形式,也就是 。

2、算法是对 的描述。

3、计算机算法可以分为 和 。

4、循环结构可分为 和 。

三、编程题

1、依次将10个数输入,要求将其中最小的数打印出来,并画出其流程图。

2、求6!的算法并用N-S 流程图表示。

3、写出判定2010-2500年中属于闰年的算法,并画出其流程图。

4、写出将1-500之间的素数打印出来的算法,并画出其流程图。

5、用C 语言表示两个m 和n 的最大公约数,并画出其流程图。

6、用C 语言表示求 即(1+2+3+...+100),并画出其流程图。

∑=1001

n n

第三章数据类型、运算符与表达式

一、选择题

1、在C语言中,不正确的int 类型的常数是( )

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

2、以下选项中合法的字符常量是( )

A)”B”B)'\010' C)-268D) D

3、以下选项中,不能作为合法常量的是( )

A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0

4、下列选项中,合法的C语言关键字是( )

A) V AR B) cher C) integer D) default

5、有以下定义语句double a,b; int w; long c;

若各变量已正确赋值,则下列选项中正确的表达式是( )

A) a=a+b=b++ B) w%(int)a+b

C) (c+w)%(int)a D) w=a==b;

6、若有定义:int a=8,b=5,c;,则执行语句c=a/b+0.4;后,c的值为( )

A)1.4 B)1 C)2.0 D)2

7、以下选项中合法的用户标识符是( )

A) long B) _2Test C) 3Dmax D) A.dat

8、若变量a是int类型,并执行了语句:a='A'+1.6;,则正确的叙述是( )

A)a的值是字符C B)a的值是浮点型

C)不允许字符型和浮点型相加 D)a的值是字符'A'的ASCII值加上1

9、设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是( )

A) (a+b) *h/2 B) (1/2)*(a+b) *h

C) (a+b) *h*1/2 D) h/2*(a+b)

10、以下选项中非法的表达式是( )

A) 0<=x<100 B) i=j==0 C) (char)(65+3) D) x+1=x+1

11、若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( )

A)1 B)2 C)2.0 D)2.5

12、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( )

A)a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D)a>=10‖a<=0

13、当c的值不为0 时,在下列选项中能正确将c的值赋给变量a、b的是( )

A)c=b=a;B)(a=c)||(b=c);

C)(a=c)&&(b=c);D)a=c=b;

14、能正确表示a和b同时为正或同时为负的逻辑表达式是( )

A)(a>=0||b>=0)&&(a<0||b<0) B)(a>=0&&b>=0)&&(a<0&&b<0)

C)(a+b>0)&&(a+b<=0) D)a*b>0

15、语句:printf("%d",(a=2)&&(b=-2));的输出结果是( )

A)无输出B)结果不确定C)-1 D)1

16、设有int x=11;则表达式(x++ * 1/3) 的值是( )

A)3 B)4 C)11 D)12

17、设int x=1,y=1;表达式(!x||y--)的值是( )

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

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

A)%= B)/ C)= D)〈=

19、已定义ch为字符型变量,以下赋值语句中错误的是( )

A) ch="\"; B) ch=62+3; C) ch=NULL; D) ch="\xaa";

20、有以下程序

void main( )

{ int m=12,n=34;

printf("%d%d",m++,++n);

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

}

程序运行后的输出结果是( )

A)12353514 B)12353513 C)12343514 D)12343513

21、以下程序的输出结果是( )

void main( )

{ int a=4,b=5,c=0,d;

d=!a&&!b||!c;

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

}

A)1 B)0 C)非0的数D)-1

22、以下选项中不属于C语言的类型的是( )

A) signed short int B) unsigned long int

C) unsigned int D) long short

23、有以下定义语句double a,b; int w; long c;

若各变量已正确赋值,则下列选项中正确的表达式是( )

A) a=a+b=b++ B) w%(int)a+b)

C) (c+w)%(int)a D) w=a= =b;

24、有以下程序

void main()

{ char a='a',b;

print("%c,",++a);

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

}

程序运行后的输出结果是( )

A)b,b B) b,c C)a,b D) a,c

25、下列程序执行后的输出结果是( )

A)-32767 B)FFFE C)255 D)-32768

void main( )

{ char x=0xFFFF; printf("%d \n",x--); }

二、填空题

1、以下程序运行后的输出结果是。

void main()

{ int a,b,c;

a=25;

b=025;

c=0x25;

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

}

2、若有语句

int i=-19,j=i%4;

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

则输出结果是。

3、以下程序输出的结果是。

void main()

{ int a=5,b=4,c=3,d;

d=(a>b>c);

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

}

4、设y是int型变量,请写出判断y为奇数的关系表达。

5、以下程序的输出结果是。

void main()

{ unsigned short a=65536; int b;

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

}

6、有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是________。

c=(a-=(b-5));

c=(a%11)+(b=3);

7、表示“整数x的绝对值大于5”时值为“真”的C语言表达式是_____________。

8、有如下程序段

int a=14,b=15,x;

char c='A';

x=(a&&b)&&(c<'B');

执行该程序段后,x的值为。

9、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是。

10、语句:x++;?++x; x=x+1;?x=l+x; ,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)。

11、数字字符0的ASCII值为48,若有以下程序

void main()

{ char a='1',b='2';

printf("%c,",b++);

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

}

程序运行后的输出结果是。

12、void main()

{

printf("\101 \x42 C\n");

printf("I say:\"How are you?\"\n");

printf("\\C Program\\\n");

printf("Turbo \'C\'");

}

程序运行后的输出结果是。

13、#define PRICE 12.5

void main()

{ int num=3;

float total;

char ch1,ch2=‘D’;

total=num*PRICE;

ch1=ch2-‘A’+‘a’;

printf(“total=%f,ch1=%c\n”,total,ch1); }

程序运行后的输出结果是。

14、#include

void main()

{ int x,y=7;

float z=4;

x=(y=y+6,y/z);

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

}

程序运行后的输出结果是。

15、下列程序的输出结果是。

void main( )

{ double d=3.2; int x,y;

x=1.2; y=(x+3.8)/5.0;

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

}

三、求下列表达式的值

1、设x=2.5,a=7,y=4.7, x+a%3*(int)(x+y)%2/4

2、设a=2,b=3,x=3.5,y=2.5 (float)(a+b)/2+(int)x%(int)y

3、设a=24, ①a+=a-=a*=a ②a/=a+a ③a%=(n%=2),n的值等于5

四、编程题

要将“Glmre”进行解密,解密的规则是:用原来的字母前面第4个字母代替原来的字母,例如:字母”E“前面的字母是”A“,用“A”代替“E”。因此“Glmre”应解密为“China”。请编一程序,用赋处值的方法使c1,c2,c3,c4,c5五个变量的值分别为’G’、’l’、’m’、’r’、’e’经过运算,是c1,c2,c3,c4,c5 分别变成‘C’、‘h’、‘i’、‘n’、‘a’,并输出。

语法分析程序实验报告及代码

LL(1)语法分析实验报告 一、实验题目 LL(1)语法分析 二、实验目的 通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,检查语法错误,进一步掌握常用的语法分析方法。 三、实验内容 构造LL(1)语法分析程序,任意输入一个文法符号串,并判断它是否为文法的一个句子。程序要求为该文法构造预测分析表,并按照预测分析算法对输入串进行语法分析,判别程序是否符合已知的语法规则,如果不符合则输出错误信息。 消除递归前的文法消除递归和提取公因子后的等价文法 S →S ∨ a T | a T | ∨ a T S→aTS’ |vaTS’ T →∧ a T | ∧a S’→vaTS’ |ε T→∧ a T’ T’→∧ aT’ |ε 根据已建立的分析表,对下列输入串:a∧ a∧ a进行语法分析,判断其是否符合文法。 四、实验要求 1.根据已由的文法规则建立LL(1)分析表; 2.输出分析过程。 请输入待分析的字符串: a∧ a∧ a 符号栈输入串所用产生式

#S a∧ a∧ a# #S’Ta a∧ a∧ a# S→aTS’ #S’T ∧ a∧ a# # S’T’a∧∧ a∧ a# T→∧ a T’ # S’T’a a∧ a# # S’T’∧ a# # S’T’a∧∧ a# T’→∧ aT’ # S’ T’a a# # S’ T’# # S’ # T’→ε # # S’→ε 五、程序思路 模块结构: 1、定义部分:定义常量、变量、数据结构。 2、初始化:设立LL(1)分析表、初始化变量空间(包括堆栈、结构体等); 3、运行程序:让程序分析一个text文件,判断输入的字符串是否符合文法定义的规则; 4、利用LL(1)分析算法进行表达式处理:根据LL(1)分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,如果遇到错误则显示简单的错误提示。 六、程序源代码 /* 程序名称: LL(1)文法分析程序 */ /* S->S>aT|aT|>aT */ /* T->

C语言程序设计第11.12章测试答案

第一题、单项选择题(每题1分,5道题共5分) 1、设有定义“int a=3,b,*p=&a;”,则下列语句中,使b不为3的语句是: A、b=*&a; B、b=*p; C、b=a; D、b=*a; 2、在C语言中,关于文件存取方式,: A、只能顺序存取 B、只能随机存取(也称直接存取) C、可以顺序存取,也可以随机存取 D、只能从文件开头存取 3、fp 是文件指针,str 是一个字符串,n是一个整数,向文件中输出数据的正确格式是: A、fprintf("%s,%d\n",str,n,fp); B、fprintf(fp,"%s,%d\n",str,n); C、fprintf("fp %s,%d\n",str,n); D、fprintf("%s,%d fp\n",str,n); 4、若有int a=3,*pa; float f=4.5,*pf=&f;,则下列表述中,错误的是 ( )。 A、pa=&a B、pa=&f C、pf=&f D、*pf=a+f 5、若有int a[10],*p=a;,则( )。 A、p++可以使p指向下一个字节 B、p+=2 相当于p=sizeof(a)/10 C、p++可以使p指向下一个元素,即a[1]的首地址 D、p+=2可以使p指向下一个元素,即a[1]的首地址 第二题、多项选择题(每题2分,5道题共10分) 1、C语言中的文件分类是: A、文本文件和数据文件 B、文本文件和二进制文件 C、数据文件和二进制文件 D、顺序文件和随机文件 2、以读写方式打开一个二进制文件fil2,fopen函数的正确的调用方式是: A、FILE *FP; FP=fopen("fil2","r"); B、FILE *FP; FP=fopen("fil2","rb");

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

Windows错误代码大全

WINDOWS XP的错误代码大全 0 0x0000 作业完成。 1 0x0001 不正确的函数。 2 0x0002 系统找不到指定的档案。 3 0x0003 系统找不到指定的路径。 4 0x0004 系统无法开启档案。 5 0x0005 拒绝存取。 6 0x0006 无效的代码。 7 0x0007 储存体控制区块已毁。 8 0x0008 储存体空间不足,无法处理这个指令。 9 0x0009 储存体控制区块位址无效。 10 0x000A 环境不正确。 11 0x000B 尝试载入一个格式错误的程式。 12 0x000C 存取码错误。 13 0x000D 资料错误。 14 0x000E 储存体空间不够,无法完成这项作业。 15 0x000F 系统找不到指定的磁碟机。 16 0x0010 无法移除目录。 17 0x0011 系统无法将档案移到其他的磁碟机。 18 0x0012 没有任何档案。 19 0x0013 储存媒体为防写状态。 20 0x0014 系统找不到指定的装置。 21 0x0015 装置尚未就绪。 22 0x0016 装置无法识别指令。 23 0x0017 资料错误(cyclic redundancy check) 24 0x0018 程式发出一个长度错误的指令。 25 0x0019 磁碟机在磁碟找不到持定的磁区或磁轨。 26 0x001A 指定的磁碟或磁片无法存取。 27 0x001B 磁碟机找不到要求的磁区。 28 0x001C 印表机没有纸。 29 0x001D 系统无法将资料写入指定的磁碟机。 30 0x001E 系统无法读取指定的装置。 31 0x001F 连接到系统的某个装置没有作用。 32 0x0020 The process cannot access the file because it is being used by another process. 33 0x0021 档案的一部份被锁定,现在无法存取。 34 0x0022 磁碟机的磁片不正确。请将%2 (V olume Serial Number: %3) 插入磁碟 机%1。 36 0x0024 开启的分享档案数量太多。 38 0x0026 到达档案结尾。 39 0x0027 磁碟已满。 50 0x0032 不支援这种网路要求。 51 0x0033 远端电脑无法使用。 52 0x0034 网路名称重复。

(完整版)《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.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

黑莓手机错误代码详解 blackberry系统错误提示

黑莓手机错误代码详解 blackberry系统错误提示 希望国内的黑莓用户对黑莓手机出错提示有个很好的认识,从而来解决问题。 101 Previous startup failed 当jvm启动过程中,前一个启动的项目失败了,设备已经被重置。这个错误表明jvm 在启动时找到“启动进行中”这个标志位已经设置了,当前屏幕信息为:有意停止“系统继续重置”这个死循环,来纠正系统当前不正确的启动操作 102 Invalid code in filesystem 在文件系统中发现无效的代码。手持设备的系统检查.cod文件的变动时,在一些.cod 文件中检测到这个问题。他肯可能是表明生成过程中发生了错误,即在cod文件中存在一个有问题的签名。如果一些用户操作设备导致这个问题的发生,文件系统的代码被破坏,复位的周期将是连续循环的。唯一的恢复方法是擦去设备并且恢复一个新的系统。 103 Cannot find starting address 找不到启动的地址,用于启动系统的引导cod文件找不到。这个错误表明一个用于引导系统的cod文件没有安装到设备上,或者格式不正确。 104 Uncaught: 非预期:《java模块名》jvm诊断出一个非预期的java代码异常错误抛出,程序可以继续执行,或者手持设备可以用桌面管理器连是USB线安装一个程序调试器来查看这些错误信息。事件日志里应该包含了异常错误的信息 105 Example, DbRecSize( %d ) -> %d 举例,DbRecSize( %d ) -> %d文件系统API已经为一种特定的操作返回一种错误状态码,他可能表明在jvm上存在一个无效的或者错误的文件系统 106 Graphics system error 图形系统错误,在设备的图形系统里一个错误发生并被检测到 107 operator new() called 在jvm里,操作new()回调一个c++类,该函数代码没有被正确的从VMRamObject对象来继承,新操作符需要被正确的继承。提取当前的(-后复位)的BUGDISP 108 operator delete() called 在jvm里,操作delete

《C语言程序设计》第10章在线测试

A B C D 、下列描述中,合法的数组定义是: A B C D 程序的执行是从 A B C D 、下列语句中,正确的语句定义是 A B C D int a[3][4]; A B C D

2、若形参是简单变量形式,则对应的实参可以是: A、常量 B、数组名 C、简单变量 D、数组元素 3、下列描述中,合法的数组定义是( )。 A、char a[]={“String”}; B、char a[5]={0,1,2,3,4};这组题特BT,答案明明是D,却ABCD全要选才算正确,让我测了N回! C、char a[]=“String”; D、char a[]={0,1,2,3,4,5}; 4、下列描述中,不能正确给字符数组str定义和赋值的是( )。 A、char str[]={"abcdefghijklmn "}; B、char str[10];str={" abcdefghijklmn "}; C、char str[10]={"abcdefghijklmn"}; D、char str[10];strcpy(str,"abcdefghijklmn"); 5、如果想使下列数组a中5个元素的值全部为0,可以写成( )。 A、int a[5]={0:5}; B、int a[5]={0}; C、int a[5]={5:0}; D、int a[5]={0,0,0,0,0}; E、int a[5]=0; 第三题、判断题(每题1分,5道题共5分) 1、若有func((v1,v2),(v3,v4,v5),v6)调用,说明函数func有6个形参。 正确错误 2、在说明一个结构体变量时系统分配给它的存储空间是该结构体中所有成员所需存储空间的总和。

c语言程序设计第四版考精彩试题

C程序设计(第四版)期末考试题 本卷共有4道大题: 一、单项选择题(20道小题,共20分) 1、以下对C语言函数的有关描述中,正确的是( )(1分) A、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B、C函数既可以嵌套定义又可以递归调用 C、函数必须有返回值,否则不能使用函数 D、C程序中有关调用关系的所有函数必须放在同一个源程序文件中 2、strcpy库函数用于复制一个字符串。若有以下定义:char *str1="copy",str2[10],*str3="hijklmn";char *str4,*str5="abcd";则对strcpy库函数的错误调用是( )(1分) A、strcpy(str2,str1) B、strcpy(str3,str1) C、strcpy(str4,str1) D、strcpy(str5,str1) 3、设有以下语句:char str[4][12]={"aaa","bbb","ccc","ddd"}; char *strp[4]; int i;for(i=0;i<4;i++) strp[i]=str[i]; 若0<=k<4,下列选项中对字符串的非法引用是( )(1分) A、strp B、str[k] C、strp[k] D、*strp 4、以下各选项企图说明一种新的类型名,其中正确的是( )(1分) A、typedef v1 int; B、typedef v2=int; C、typedef v1 int v3; D、typedef v4: int; 5、若以下定义和语句:int a[]={1,2,3,4,5,6,7,8,9,0}; int *p,i;p=a;0

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.程序源代码:

Windows常见错误代码解析

Windows常见错误代码解析 Windows常见非法操作详解 ■.停止错误编号:0x0000000A 说明文字RQL-NOT-LESS-OR-EQUAL 通常的原因:驱动程序使用了不正确的内存地址. 解决方法:如果无法登陆,则重新启动计算机.当出现可用的作系统列表时,按F8键.在Windows高级选项菜单屏幕上,选择"最后一次正确的配置",然后按回车键. 检查是否正确安装了所有的新硬件或软件.如果这是一次全新安装,请与硬件或软件的制造商联系,获得可能需要的任何Windows更新或驱动程序. 运行由计算机制造商提供的所有的系统诊断软件,尤其是内存检查. 禁用或卸掉新近安装的硬件(RAM,适配器,硬盘,调制解调器等等),驱动程序或软件. 确保硬件设备驱动程序和系统BIOS都是最新的版本. 确保制造商可帮助你是否具有最新版本,也可帮助你获得这些硬件. 禁用 BIOS内存选项,例如cache或shadow. ■.停止错误编号:0x0000001E 说明文字:KMODE-EXPTION-NOT-HANDLED 通常的原因:内核模式进程试图执行一个非法或未知的处理器指令. 解决方法:确保有足够的空间,尤其是在执行一次新安装的时候. 如果停止错误消息指出了某个特定的驱动程序,那么禁用他.如果无法启动计算机.应试着用安全模式启动,以便删除或禁用该驱动程序. 如果有非 Microsoft支持的视频驱动程序,尽量切换到标准的VGA驱动程序或Windows提

供的适当驱动程序. 禁用所有新近安装的驱动程序. 确保有最新版本的系统BIOS.硬件制造商可帮助确定你是否具有最新版本,也可 以帮助你获得他. BIOS内存选项,例如cache,shadow. ■.停止错误编号:0x00000023或0x00000024 说明文字:FAT-FILE-SYSTEM或MTFS-FILE-SYSTEM 通常原因:问题出现在Ntfs.sys(允许系统读写NTFS驱动器的驱动程序文件)内. 解决方法:运行由计算机制造商提供的系统诊断软件,尤其是硬件诊断软件. 禁用或卸载所有的反病毒软件,磁盘碎片整理程序或备份程序. 通过在命令提示符下运行Chkdsk /f命令检查硬盘驱动器是否损坏,然后重新启动计算机. ■.停止编号:0x0000002E 说明文字ATA-BUS-ERROR 通常的原因:系统内存奇偶校验出错,通常由硬件问题导致. 解决方法:卸掉所有新近安装的硬件(RAM.适配器.硬盘.调制解调器等等). 运行由计算机制造商提供的系统诊断软件,尤其是硬件诊断软件. 确保硬件设备驱动程序和系统BIOS都是最新版本. 使用硬件供应商提供的系统诊断,运行内存检查来查找故障或不匹配的内存. 禁用BIOS内存选项,例如cache或shadow. 在启动后出现可用作系统列表时,按F8.在Windows高级选项菜单屏幕上,选择" 启动VGA模式:.然后按回车键.如果这样做还不能解决问题,可能需要更换不同 的视频适配器列表,有关支持的视频适配器列表,请参阅硬件兼容性列表. ■.停止编号:0x0000003F

第10章C语言程序设计习题答案

C 语言程序设计( Visual C++6.0 环境)》习题答案 习题十 、思考题 1.简述公有类型成员与私有类型成员的区别。 公有(public) 类型成员不但可以被类的成员函数访问,而且可以被外界访问,所以说公有类型定义了类的外部接口。 私有(private) 类型成员只能被类的成员函数访问,外界不能直接访问它。类的数据成员一般都应该声明为私有成员。 2.简述构造函数与析构函数的作用。 构造函数的作用就是在对象在被创建时利用特定的值构造对象,将对象初始化。析构函数的作用与构造函数正好相反,它是用来在对象被删除前进行一些清理工作。析构函数调用之后,对象被撤消了,相应的内存空间也将被释放。 3.简述什么是友元函数。 友元函数是在类定义中由关键字friend 修饰的非成员函数。友元函数可以是一个普通函数,也可以其它类中的一个成员函数,它不是本类的成员函数,但它可以访问本类的私有成员和保护成员。 4.简述公有继承、私有继承和保护继承三种继承方式的区别。 ⑴、当类的继承方式为公有(public 继承)时,基类的公有(public )成员和保 护( protected )成员仍然成为派生类的公有成员和保护成员,而基类的私有成员不能被派生类访问。 ⑵、当类的继承方式为保护( protected )继承时,基类的公有(public )成员和 保护( protected )成员将成为派生类的保护成员,而基类的私有成员不能被派生类访问。 ⑶、当类的继承方式为私有(private )继承时,基类的公有(public )成员和保护(protected )成员将成为派生类的私有成员,而基类的私有成员不能被派生类访问。5.定义一个圆柱体类,其属性为圆柱体的底面半径和高,能计算出圆柱体的体积。 #include class cylinder { public: cylinder(float r,float h) { radius=r; height=h; } float Volume(); private: float radius; float height;

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

第10章C语言程序设计习题答案

《C语言程序设计(Visual C++6.0环境)》习题答案 习题十 一、思考题 1.简述公有类型成员与私有类型成员的区别。 公有(public)类型成员不但可以被类的成员函数访问,而且可以被外界访问,所以说公有类型定义了类的外部接口。 私有(private)类型成员只能被类的成员函数访问,外界不能直接访问它。类的数据成员一般都应该声明为私有成员。 2.简述构造函数与析构函数的作用。 构造函数的作用就是在对象在被创建时利用特定的值构造对象,将对象初始化。析构函数的作用与构造函数正好相反,它是用来在对象被删除前进行一些清理工作。析构函数调用之后,对象被撤消了,相应的内存空间也将被释放。 3.简述什么是友元函数。 友元函数是在类定义中由关键字friend修饰的非成员函数。友元函数可以是一个普通函数,也可以其它类中的一个成员函数,它不是本类的成员函数,但它可以访问本类的私有成员和保护成员。 4.简述公有继承、私有继承和保护继承三种继承方式的区别。 ⑴、当类的继承方式为公有(public继承)时,基类的公有(public)成员和保 护(protected)成员仍然成为派生类的公有成员和保护成员,而基类的私有成员不能被派生类访问。 ⑵、当类的继承方式为保护(protected)继承时,基类的公有(public)成员和 保护(protected)成员将成为派生类的保护成员,而基类的私有成员不能被派生类访问。 ⑶、当类的继承方式为私有(private)继承时,基类的公有(public)成员和保 护(protected)成员将成为派生类的私有成员,而基类的私有成员不能被派生类访问。 5.定义一个圆柱体类,其属性为圆柱体的底面半径和高,能计算出圆柱体的体积。 #include class cylinder { public: cylinder(float r,float h) { radius=r; height=h; } float Volume(); private: float radius; float height;

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案 习题1 1-1 填空题 1.函数 2.主函数main(),主函数main() 3.主函数main() 4.函数首部,函数体 5.{, } 6./*, */ 7.顺序结构,选择结构,循环结构 8..c, .obj, .exe 1-2 思考题 1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。 2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法 3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。 1-3 编程题 1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。 #include "stdio.h" main() { float a, b, h, s; a=10; b=20; h=5; s=(a+b)*h/2; printf("s=%f\n" , s ); } 2. 编写程序显示如图1.11所示信息。 图1.11 显示信息 #include "stdio.h" main()

{ printf("******************************\n"); printf("* hello world *\n"); printf("******************************\n"); } 习题2 2-1 单选题 1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题 1.2.000000 2.1,0.5 3.9,2 4.6 5.100,d 6.(1)20 (2)0 (3)60 7. (1)10,6,4 (2)6,9,15 (3)3,60,83 8. 55 习题3 3-1 选择题 1-5BDABC 6-10ADCAC 11-12BB 3-2 填空题 1. 3 2.0261 3.0x10 4. 2, 1 互换a,b的值 5. 6.6 6.–003 8.7 7. 5.0,4,c=3 8.i=10,j=20 9.(1) 65 (2) 65,A (3) 56.123400,123.456001 (4) 3.141600 (5) 8765.432

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 语言是结构化、________的程序设计语言。

Socket编程协议错误代码解析

10004—WSAEINTR 函数调用中断。该错误表明由于对WSACancelBlockingCall的调用,造成了一次调用被强行中断。 10009—WSAEBADF 文件句柄错误。该错误表明提供的文件句柄无效。在MicrosoftWindowsCE下,socket函数可能返回这个错误,表明共享串口处于“忙”状态。 10013—WSAEACCES 权限被拒。尝试对套接字进行操作,但被禁止。若试图在sendto或WSASendTo中使用一个广播地址,但是尚未用setsockopt和SO_BROADCAST这两个选项设置广播权限,便会产生这类错误。 10014—WSAEFAULT 地址无效。传给Winsock函数的指针地址无效。若指定的缓冲区太小,也会产生这个错误。10022—WSAEINV AL 参数无效。指定了一个无效参数。例如,假如为WSAIoctl调用指定了一个无效控制代码,便会产生这个错误。另外,它也可能表明套接字当前的状态有错,例如在一个目前没有监听的套接字上调用accept或WSAAccept。 10024—WSAEMFILE 打开文件过多。提示打开的套接字太多了。通常,Microsoft提供者只受到系统内可用资源数量的限制。 10035—WSAEWOULDBLOCK 资源暂时不可用。对非锁定套接字来说,如果请求操作不能立即执行的话,通常会返回这个错误。比如说,在一个非暂停套接字上调用connect,就会返回这个错误。因为连接请求不能立即执行。 10036—WSAEINPROGRESS 操作正在进行中。当前正在执行非锁定操作。一般来说不会出现这个错误,除非正在开发16位Winsock应用程序。 10037—WSAEALREADY 操作已完成。一般来说,在非锁定套接字上尝试已处于进程中的操作时,会产生这个错误。比如,在一个已处于连接进程的非锁定套接字上,再一次调用connect或WSAConnect。另外,服务提供者处于执行回调函数(针对支持回调例程的Winsock函数)的进程中时,也会出现这个错误。 10038—WSAENOTSOCK 无效套接字上的套接字操作。任何一个把SOCKET句柄当作参数的Winsock函数都会返回这个错误。它表明提供的套接字句柄无效。 10039—WSAEDESTADDRREQ 需要目标地址。这个错误表明没有提供具体地址。比方说,假如在调用sendto时,将目标地址设为INADDR_ANY(任意地址),便会返回这个错误。 10040—WSAEMSGSIZE 消息过长。这个错误的含义很多。如果在一个数据报套接字上发送一条消息,这条消息对内部缓冲区而言太大的话,就会产生这个错误。再比如,由于网络本身的限制,使一条消息过长,也会产生这个错误。最后,如果收到数据报之后,缓冲区太小,不能接收消息时,也会产生这个错误。 10041—WSAEPROTOTYPE 套接字协议类型有误。在socket或WSASocket调用中指定的协议不支持指定的套接字类型。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

总结电脑各种错误代码

总结各种代码(硬盘故障,ADSL错误代码表,Windows死机)一硬盘故障提示信息的含义 (1)Date error(数据错误) 从软盘或硬盘上读取的数据存在不可修复错误,磁盘上有坏扇区和 坏的文件分配表。 (2)Hard disk configuration error(硬盘配置错误) 硬盘配置不正确,跳线不对,硬盘参数设置不正确等。 (3)Hard disk controller failure(硬盘控制器失效) 控制器卡(多功能卡)松动,连线不对,硬盘参数设置不正确等。 (4)Hard disk failure(硬盘失效故障) 控制器卡(多功能卡)故障,硬盘配置不正确,跳线不对,硬盘物 理故障。 (5)Hard disk drive read failure(硬盘驱动器读取失效) 控制器卡(多功能卡)松动,硬盘配置不正确,硬盘参数设置不正 确,硬盘记录数据破坏等。 (6)No boot device available(无引导设备) 系统找不到作为引导设备的软盘或者硬盘。 (7)No boot sector on hard disk drive(硬盘上无引导扇区) 硬盘上引导扇区丢失,感染有病毒或者配置参数不正确。 (8)Non system disk or disk error(非系统盘或者磁盘错误) 作为引导盘的磁盘不是系统盘,不含有系统引导和核心文件,或者 磁盘片本身故障。 (9)Sectornot found(扇区未找到) 系统盘在软盘和硬盘上不能定位给定扇区。 (10)Seek error(搜索错误) 系统在软盘和硬盘上不能定位给定扇区、磁道或磁头。 (11)Reset Failed(硬盘复位失败) 硬盘或硬盘接口的电路故障。 (12)Fatal Error Bad Hard Disk(硬盘致命错误) 硬盘或硬盘接口故障。 (13)No Hard Disk Installed(没有安装硬盘) 没有安装硬盘,但是CMOS参数中设置了硬盘;

相关文档
最新文档