C语言程序设计_第三阶段练习

合集下载

第三章C语言单选练习

第三章C语言单选练习

一、单选题1、以下程序的输出结果是______。

#include <stdio.h>void main(){int k=17;printf("%d,%o,%x\n",k,k,k);}A:17,021,0x11 B:17,17,17 C:17,0x11,021 D:17,21,11答案:D难度:2知识点:读程序选结果/第三章2、请选出合法的C语言赋值语句______。

A:a=b=58 B:i++; C:a=58,b=58 D:k=int(a+b);答案:B难度:2知识点:单选题/第三章3、设int a=12,则执行完语句a+=a-=a*a后,a的值是______。

A:552 B:264 C:144 D:-264答案:D难度:2知识点:读程序选结果/第三章4、若变量已正确定义并赋值,下面符合C语言的表达式是______。

A:a:=b+1 B:a=b=c+2 C:int 18.5%3 D:a=a+7=c+b答案:B难度:2知识点:单选题/第三章第3 章单选题2 吕橙5、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a 的值是______。

A:-3 B:9 C:-12 D:6答案:C难度:2知识点:读程序选结果/第三章6、若变量已正确说明为float类型,要通过语句scanf("%f %f %f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:______。

①102233②10.0,22.0,33.0③10.022.0 33.0④10 2233A:①B:②C:③D:④答案:B难度:2知识点:读程序选结果/第三章7、以下程序的输出结果是______。

// 此题超纲,已删除#define SQR(X) X*X#include <stdio.h>void main(){int a=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}A:16 B:2 C:9 D:1答案:B《C 语言程序设计》题库吕橙3难度:2知识点:读程序选结果/第三章(超纲)8、X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是______。

C语言程序设计第3阶段练习题

C语言程序设计第3阶段练习题

江南大学现代远程教育第三阶段测试卷考试科目:《C语言程序设计》第10章至第13章(总分100分)时间:90分钟学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一、单项选择题(本题共20小题,每小题2分,共40分。

)1、设有定义:int a,*pA=&a;以下scanf语句中能正确为变量a读入数据的是()。

A、scanf(“%d”,pA) ;B、scanf(“%d”,A) ;C、scanf(“%d”,&pA) ;D、scanf(“%d”,*pA);2、若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是()。

A、a,point,*&aB、&*a,&a,*pointC、*&point,*point,&aD、&a,&*point,piont3、有以下程序main( ){ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};printf(“%d\n”,strlen(p[4]));}执行后输出结果是()。

A、2B、3C、4D、54、C语言结构体类型变量在程序执行期间()。

A、所有成员一直驻留在内存中B、只有一个成员驻留在内存中C、部分成员驻留在内存中D、没有成员驻留在内存中5、以下对C语言中共用体类型数据的叙述()的叙述是正确的。

A、可以对共有变量名直接赋值B、一个共用体变量中可以同时存放其所有成员C、一个共有体变量中不能同时存放其所有成员D、共用体类型定义中不能出现结构体类型的成员6、有以下程序main(){ char str[]="xyz",*ps=str;while(*ps)ps++;for(ps--;ps-str>=0;ps--) puts(ps);}执行后的输出结果是()。

A、yzB、zC、zD、xxyz yz yz xyxyz xyz7、设有如下定义struct ss{ char name[10];int age;char sex;}std[3],*p=std;下面各输入语句中错误的是()。

c语言程序设计练习3

c语言程序设计练习3

在一个C程序中(B)。

A、main函数必须出现在固定位置B、main函数可以在任何地方出现C、main函数必须出现在所有函数之前D、main函数必须出现在所有函数之后若有int a[][]={{1,2},{3,4}}; 则*(a+1),*(*a+1)的含义分别为(C)。

A、&a[0][1],3B、非法,2C、&a[1][0],2D、a[0][0],4fseek函数的正确调用形式是(D)。

A、fseek(起始点,位移量,文件类型指针)B、fseek(位移量,起始点,fp)C、fseek(文件类型指针,起始点,位移量)D、fseek(fp,位移量,起始点)C语言程序中,当调用函数时(B)。

A、实参和虚参可以共用存储单元B、实参和虚参各占一个独立的存储单元C、计算机系统自动确定是否共用存储单元D、可以由用户指定是否共用存储单元以下标识符中,不能作为合法的C用户定义标识符的是(C)。

A、toB、answerC、defineD、_ifchar *s1="hello",*s2;s2=s1;则(D)。

A、s2指向不确定的内存单元B、s1不能再指向其它单元C、不能访问"hello"D、puts(s1);与puts(s2);结果相同有如下程序main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是 BA、a=1,b=1B、a=2,b=1C、a=1,b=0D、a=2,b=2下列正确的标识符是 DA、%yB、a+bC、6aD、_do若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是(B)。

A、"ab"B、"wb+"C、"ab++"D、"rb+"int a[10];合法的数组元素的最小下标值为(B)。

C语言程序的设计_第3章练习题

C语言程序的设计_第3章练习题

一、单项选择题题目1若x的值为15,则执行“if(x>10) x++; else x--;”语句后,x的值为()。

a. 14b. 15c. 10d. 16题目2若x的值为-10,则执行“if(!x) x++; else x--;”语句后,x的值为()。

a. -9b. -11c. -10d. 0题目3若x的值为10,则执行“switch(x%3){case0: x++; case 1:x++; case 2: x++;}”语句后,x的值为()。

a. 13b. 12c. 11d. 10题目4若x的值为10,则执行“switch(x%3){case0: x++; break; case 1:x++; default: x++;}”语句后,x的值为()。

a. 9b. 10c. 11d. 12题目5若n的值为10,则执行“for(i=1;i<n; i++) S;”语句的过程中,表达式i=1共被执行的次数为()。

a. nb. n+1c. 1 B. n-1 C.n-1d. 1题目6若n的值为10,则执行“for(i=0;; i++) if(i>n/3) break;”语句后,i的值为()。

a. 3b. 6c. 4d. 5题目7若n的值为10,则执行“for(i=1;i<n; i++) S;”语句的过程中,表达式i++共被执行的次数为()。

a. n+1b. nc. 1d. n-1题目8若n的值为10,则执行“for(i=0;i<n; i++) for(j=i; j<n; j++) S;”语句后,层循环体S语句的执行总次数为()。

a. n(n-1)/2b. (n+1)/2c. n*nd. n(n+1)/2题目9若n的值为10,则执行“while(n-->0)s+=n;”语句的过程中,循环体被执行的次数为()。

a. 8b. 10c. 11d. 9题目10若n的值为5,s的值为0,则执行“while(n-->0) s+=n;”语句后,s的值为()。

C语言程序设计(第3版)何钦铭 颜 晖 第3章 分支结构

C语言程序设计(第3版)何钦铭 颜 晖 第3章  分支结构

第3章分支结构【练习 3-1】例 3-4 中使用 else-if 语句求解多分段函数,为了检查 else-if 语句的三个分支是否正确,已经设计了三组测试用例,请问还需要增加测试用例吗?为什么?如果要增加,请给出具体的测试用例并运行程序。

解答:最好再增加两组测试用例,因为尚未对分段函数参数的边界值进行测试。

可再给出 x=0和 x=15 时的两种情况。

【练习 3-2】计算符号函数的值:输入一个整数 x,计算并输出下列分段函数sign(x)的值。

-1 x<0y=sign(x)= 0 x=01 x>0解答:#include <stdio.h>int main(void){int x, y;printf("Enter x: " );scanf("%d",&x);if(x>0) y=1;else if (x==0) y=0;else y=-1;printf("sign( %d ) = %d\n",x,y);return 0;}【练习 3-3】统计学生平均成绩与及格人数:输入一个正整数 n,再输入 n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数。

试编写相应程序。

解答:# include <stdio.h>int main(void){int count, i, n;double grade, total;printf("Enter n: ");scanf("%d", &n);total = 0;count = 0;for(i = 1; i <= n; i++){printf("Enter grade #%d: ", i);scanf ("%lf", &grade);total = total + grade;if(grade >= 60) count++;}printf("Grade average = %.2f\n", total / n);printf("Number of pass = %d\n", count);return 0;}【练习 3-4】统计字符:输入 10 个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

国开《C语言程序设计》(形考任务三)试题及答案

国开《C语言程序设计》(形考任务三)试题及答案

一、选择题(共30分,每小题2分)试题1在下面的函数声明语句中,存在着语法错误的是()。

选择一项:a. AA(int a, int b)b. AA(int, int)“c.AAfint a; int b)d.AA(int a, int)试题2在下面的保留字中,不能作为函数的返回值类型的是()。

选择一项:a. void° b.int'* c.enumd.long试题3假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为()<•选择一项:r a.lr b.2& c.4r d.8试题4假定a为一个数组名,在下面的表达式中,存在语法错误的是()o选择一项:'aa[i]b. *a+ +}return s;}计算出l+x+x2+...+x n的值并返回。

试题37int SG(int x) ( //x为大于等于2的整数int i=2;while(i*i<=x) (if(x%i ==O) break;i++;)if(i*i<=x) return 0; else return 1;}判断x是否为一个质数(素数),若是则返回1,否则返回0。

试题38int WB(int a[]z int n, int x) (for(int i=0;i<n;i + +)if(a[i] ==x) return 1;return 0;)从数组a[n]中顺序查找值为x的元素,若查找成功则返回1,否则返回0。

试题39int fun(int m, int n) (int c=0;static int b=2;if(m<b || n<b) return m*n;else if(m%b==0 && n%b==0) {c=b; return c*fun(m/b,n/b);}else (b++; return fun(m,n);})一个递归函数过程,求出两个自然数m和n的最小公倍数。

c语言程序设计第三章答案

c语言程序设计第三章答案

第三章习题答案一、选择题(带**号的题选作)1) 以下叙述中正确的是()A) C语言的基本组成单位是语句B) C程序中的每一行只能写一条语句C) 简单C语句必须以分号结束D)C语句必须在一行内完成2)下列叙述中错误的是A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C) 后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件 D)后缀为.obj和.exe的二进制文件都可以直接运行3) 计算机能直接执行的程序是()A)源程序 B)目标程序 C)汇编程序 D)可执行程序4)以下叙述中错误的是A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法5)对于一个正常运行的C程序,以下叙述中正确的是A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束6)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数7) 以下关于C语言的叙述中正确的是A) C语言中的注释不可以夹在变量名或关键字的中间B) C语言中的变量可以再使用之前的任何位置进行定义C) 在C语言算术的书写中,运算符两侧的运算数类型必须一致D) C语言的数值常量中夹带空格不影响常量值的正确表示8)以下叙述中错误的是A)C程序在运行过程中所有计算都以二进制方式进行B)C程序在运行过程中所有计算都以十进制方式进行C)所有C程序都需要编译链接无误后才能运行D)C程序中整型变量只能存放整数,实型变量只能存放浮点数9)以下叙述中正确的是A) C程序中的注释只能出现在程序的开始位置和语句的后面B) C程序书写格式严格,要求一行内只能写一个语句C) C程序书写格式自由,一个语句可以写在多行上D) 用C语言编写的程序只能放在一个程序文件中10)C语言源程序名的后缀是A).exe B).C C).obj D).cp11)以下叙述中错误的是A)在程序中凡是以“#”开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的12) 以下选项中不能作为C语言合法常量的是 ( )A) ‘cd’ B) 0.1e+6 C) “a” D)‘\011’13)一下选项中,能用作数据常量的是A)o115 B)0118 C)1.5e1.5 D)115L14) 以下选项中不属于字符常量的是A)'C' B)"C" C)'\xCC0' D)'\072' 15)以下合法的字符型常量是A)’\x13’B)’\018’C)”65” D)”\n”16) 以下不合法的字符常量是A)'\018' B)'\”' C) '\\' D) ‘\xcc' 17) 以下不合法的数值常量是A)011 B)1e1 C) 8.0E0.5 D) 0xabcd 18)以下选项中能表示合法常量的是A)整数:1,200 B)实数:1.5E2.0C)字符斜杠:‘\’ D)字符串:"\007"19) C源程序中不能表示的数制是()A) 二进制 B) 八进制 C) 十进制 D) 十六进制20) 以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A.5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e521)以下不合法的用户标识符是A)j2_KEY B)Double C) 4d D) _8_22)一下选项中合法的标识符是A)1_1 B)1-1 C)_11 D)1_ _23) 以下选项中,能用作用户标识符的是A)void B)8_8 C)_0_ D)unsigned 24)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是A)大写字母 B)连接符 C)数字字符 D)下划线25)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case _2007 y-m-d Dr.Tom Bigl26) 以下C语言用户标示符中,不合法的是A)_1 B)AaBc C)a_b D)a--b 27)以下选项中不合法的标识符是A)print B)FOR C)&a D)_00 28)下列定义变量的语句错误的是()。

C语言-第3章 最简单的C程序设计 练习题

C语言-第3章 最简单的C程序设计 练习题

第3章最简单的C程序设计—顺序程序设计一、单项选择题1. 不是C语言提供的合法关键字是。

A)switch B)cher C)case D)default2. C语言提供的合法关键字是。

A)next B)string C)do case D)struct3. 下列不属于C语言中关键字的是。

A) long B) print C)default D)typedef4. 下列不正确的标识符是。

A) -a1 B) a[i] C)a2_i D)x5. 下列C语言用户标识符中合法的是。

A)*y B)sum C)int D)%5f6. 下面四个选项中,合法的标识符是。

A)auto B)define C)6a D)c7.下列C语言用户标识符中合法的是。

A)3ax B)x C)case D)-e28. 以下选项中合法的用户标识符是。

A) long B) _2Test C) 3Dmax D) A.dat9.下列四组选项中,正确的C语言标识符是。

A)%x B)a+b C)a123 D)12310. 请选出可用作C语言用户标识符的一组标识符A) void B) a3_b3 C) For D) 2adefine _123-abc DOWORD sum Case sizeof11. 下列四组字符串中都可以用作C语言程序中的标识符的是。

A)print _3d oodb aBc B)I\am one_half start$it 3paiC)str_1 Cpp pow while D)Pxq My->book line# His.age12. 下列C语言标识符中合法的变量名是。

A)2e3 B)you C)*y D)float1-12题解析:参照讲义中知识点--标识符与关键字,13. C语言中的简单数据类型包括。

A)整型、实型、逻辑型B)整型、实型、逻辑型、字符型C)整型、字符型、逻辑型D)整型、实型、字符型13题解析:C语言中没有逻辑型变量14.下列可以正确表示字符型常量的是。

新编C语言程序设计教程练习三参考答案

新编C语言程序设计教程练习三参考答案

练习三3.1把下面的代数式改写成c 语言表达式: (1) ax 3+bx 2+d (2) ab-cd2a (3)ac b a(4) cos60°+ 8e y(5) 12 (ax+sin π) 答案:(1) a * x * x * x + b * x * x + d (2)(a * b – c * d) / (2 * a) (3)a /(b + c / a)(4)cos(3.1415926/180 * 60) + 8 * pow(e, y),其中cos 和pow 为库函数,注意:cos 函数的参数为弧度。

(5)1/2.0*(a * x + sin(3.1415926)),其中sin 为库函数,注意不能写成1/2*(a * x + sin(3.1415926)),可参考3.3。

3.2把下面的C 语言表达式还原成代数式:(1) a/b/c*e*3 (2) exp(x*x/2)/sqrt(2*sin(30*3.1415926/180)) (3) sqrt(fabs(pow(x,y)+log(y))) (4) a*e/c/b*3 答案: (1)e bca 3或bc ae3(2)30sin 222x e(3)y x y ln (4)e bca 3或bc ae 33.3求表达式1/2*(a*x+(b+x)/(4*a))的值。

答:1/2的值为0,故整个表达式的值为0。

3.4参考表3-1,根据操作符的优先级和结合性用加括号方式确定表达式的求值顺序,如a += a+2的求值顺序可用加括号的方式表示为(a += (a+2))。

(1) flag & n != 0 (2) c = getchar( ) != '\n' (3) hi << 4 + low (4) *p[3] (5) *p++(6) 0 < n < q (7) !x || y++ (8) x + y > 0 && i++ < 0 答:(1) (flag & (n != 0)) (2) (c = (getchar( ) != '\n')) (3) (hi << (4 + low)) (4) (*(p[3])) (5) (*(p++)) (6) ((0 < n) < q) (7) ((!x) || (y++))(8) (((x + y) > 0) && ((i++) < 0)) 3.5试总结C 语言操作符优先级的规律。

C语言程序设计_第三阶段练习

C语言程序设计_第三阶段练习

考试科目:《C语言程序设计》第章至第章(总分100分)一单选题 (共20题,总分值40分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。

)1. 如有以下定义“int y[4][4]={1,2,3,4,5,6,7,8,9,10},*pyl=y[l],(*py2)[4]=y;”,则不能正确引用值为7的数组元素的表达式是()。

(2 分)A. *(y[l]+2)B. *(y+1)+2C. pyl[2]D. py2[1][2]2. 有以下程序void fun(char *c,int d){ *c=*c+1;d=d+1;printf(“%c,%c,”,*c,d);}main(){ char a=’A’,b=’a’;fun(&b,a); printf(“%c,%c\n”,a,b);}程序运行后的输出结果是()。

(2 分)A. B,a,B,aB. a,B,a,BC. A,b,A,bD. b,B,A,b3. 下面对结构数据类型的叙述中,()是错的。

(2 分)A. 结构变量可以在说明结构类型后定义,也可在说明结构时定义B. 结构可由若干个成员组成,各成员的数据类型可以不同C. 定义一个结构类型后,编译程序要为结构的各成员分配存储空间D. 结构变量的各成员可通过结构变量名和指向结构变量的指针引用4. 若有以下的说明,则对初值中字符'a'的引用方式为()。

static struct st{ char ch;double x;char a[];}struct st c[2][2]={{'a',3.5,'bc'},{'c',4.5,'de'},{'m',8.6,'abc'}};(2 分)A. c.chB. c[0][0].chC. c[1][1].chD. a[0]5. 以下枚举类型的定义中正确的是()。

《程序设计(C语言)》第3阶段在线作业

《程序设计(C语言)》第3阶段在线作业

一、单项选择题答题要求 :每题只有一个正确的选项。

1(5.0 分)5.0下列描述中不正确的是( ) A) 字符型数组中可以存放字符串  B) 可以对字符型数组进行整体输入、输出   C) 可以对整型数组进行整体输入、输出   D) 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 参考答案: C收起解析 解析:无2(5.0 分)5.0已有定义:int x=3,y=4,z=5;则表达式!(x y) z-1&&y z/2 的值是( ) A) 6  B) 0   C) 2   D) 1 参考答案: D收起解析解析:无3(5.0 分)5.0已定义 c 为字符型变量,则下列语句中正确的赋值语句是( ) A) c='66';  B) c="66" c=66; C) D) c="B"参考答案: C收起解析解析:无4(5.0 分)5.0下面有关 for 循环的正确描述是( ) A) for 循环只能用于循环次数已经确定的情况  B) for 循环是先执行循环体语句,后判断表达式   C) 在 for 循环中,不能用 break 语句跳出循环体   D) for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 参考答案: D收起解析解析:无5(5.0 分)5.0下列循环语句中,不能够正常结束的是( ) A) int i=0;for(;i<100;i );  B) int i=0;for(;;){if(i >100)break;}   C) int i=0,j=0;while(i<=j)j ;   D) int i=0,j=0;do{i =j;i ;j ;}while(i<j); <="" div="" style="box-sizi ng: border-box;"> 参考答案: D收起解析解析:无6(5.0 分)5.0下列说法正确的是( ) A) main 函数必须放在 C 程序的开头  B) main 函数必须放在 C 程序的最后   C) main 函数可以放在 C 程序的中间部分,但在执行 C 程序时是从程序开头执 行的   D) main 函数可以放在 C 程序的中间部分,但在执行 C 程序时是从 main 函数 开始的 参考答案: D收起解析解析:无7(5.0 分)5.0已知 char b[5],*p=b; ,则正确的赋值语句是( ) A) b=“abcd”; B) *b=“abcd”;  C) p=“abcd”;   D) *p=“abcd”; 参考答案: C收起解析解析:无8(5.0 分)5.0已定义以下函数 fun(int *p) { return *p; } 该函数的返回值是( ) A) 不确定的值  B) 形参 p 中存放的值   C) 形参 p 所指存储单元中的值   D) 形参 p 的地址值 参考答案: D收起解析解析:无9(5.0 分)0已定义 c 为字符型变量,则下列语句中正确的是( ) A) c='97'; B) c="97";c="a"; C)c=97; D)参考答案: D收起解析解析:无10(5.0 分)5.0以下不合法的赋值语句是( ) A) x=(1,y=2);++x; B) C) x=y=15; D) y=int(x);参考答案: B收起解析解析:无11(5.0 分)5.0下述语句的输出为( ) int m=-1; printf(“%d,%u,%o”,m,m,m); A) -1,-1,-11  B) -1,32767,-177777  C) -1,32768,177777   D) -1,65535,177777 参考答案: D收起解析解析:无12(5.0 分)5.0已知 char ch=‘A’,且表达式:ch=(ch>=‘A’&&ch<=‘Z’)?(ch 32):ch, 该表达式的值是( ) A) A  B) a   C) z   D) Z 参考答案: B收起解析 解析:无13(5.0 分)5.0下列数组定义及赋值不正确的是( ) A) int a[10]={0,1,2,3,4,5,6,7,8,9};  B) int a[ ]={0,1,2,3,4,5,6,7,8,9};   C) int a[2][5]= {0,1,2,3,4,5,6,7,8,9};   D) int a[2][ ]= {0,1,2,3,4,5,6,7,8,9}; 参考答案: D收起解析 解析:无14(5.0 分)5.0已知 char ch='A'; 且表达式 ch=(ch>='A' && ch<='Z') ?(ch 32) ::ch 的值是( )A a Z 出错 A)  B)  C)  D)参考答案: B收起解析解析:无15(5.0 分)5.0以下程序中,while 循环的循环次数是( ) A) 1  B) 10  C) 6   D) 死循环,不能确定次数 参考答案: D收起解析解析:无16(5.0 分)5.0已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组 a 的第一维的大小是 () A) 2  B) 3   C) 4   D) 无法确定; 参考答案: C收起解析解析:无17(5.0 分)5.0下面不是 C 语言基本数据类型的是( ) A) 指针类型整型 B) C) 无符号长整型  D) 单精度型参考答案: A收起解析解析:无18(5.0 分)5.0已知小写字母的 ASCII 码为 97,对于 int a=99, b='b'; printf(“%c,%d”, a , b);的结果是( )99, b A)c, 98 B) C) 99, 98c, b D)参考答案: B收起解析解析:无19(5.0 分)5.0以下不能正确定义二维数组的选项是( ) A) int a[2][2]={{1},{2}} B) int a[][2]={l,2,3,4}  C) int a[2][2]={{l},2,3}   D) int a[2][]={{1,2},{3,4}} 参考答案: D收起解析解析:无20(5.0 分)5.0已知 int a=4,b=5; ,这执行表达式 a=a>b 后,变量 a 的值为( ) A) 0  B) 1   C) 4   D) 5 参考答案: A收起解析 解析:无。

C语言程序设计练习题第3部分答案

C语言程序设计练习题第3部分答案

C程序设计语言练习题第三部分63.已知:int x; 则下面说明指针变量pb的语句是正确的。

A) int pb=&x; B)int *pb=x; C)int *pb=&x D)*pb=*x;64.有如下程序段:int *p,a,b=1;p=&a;*p=10;a=*p+b;执行该程序段后,a值是。

A) 12 B) 11 C) 10 D) 编译出错65.若有说明:int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是。

A) i=*p; B) *p=*&j; C) i=&j; D) i=**p;66.已知:int a,*p=&a; 则为了得到变量a的值,下列错误的表达式为______。

A) *&p B) *p C) p[0] D) *&a67.已知static int a[2][3]={2,4,6,8,10,12};正确表示数组元素地址的是__。

A) *(a+1)B) a[1]+2 C) a[1]+3 D) a[0][0]68.已知int a[3][4],*p=*a; p+=6;那么*p和______的值相同。

A) *(a+6) B) *(&a[0]+6) C) *(a[1]+2)D) *(&a[0][0]+6)69.已知说明int (*p)[M]; 其中p是______。

A) M个指向整型变量的指针B) 指向M个整型变量的函数指针C) 一个指向具有M个整型元素的一维数组的指针D) 具有M个指针元素的一维指针数组,每个元素都只能指向整型变量70.若有定义和语句:int c[4][5], (*cp)[5]; cp=c;则对c数组元素的引用正确的是哪个?A)cp+1 B)*(cp+3) C)*(cp+1)+3 D)*(*cp+2)71.设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1][2]的表达式是__________。

C语言程序设计练习三(参考答案)

C语言程序设计练习三(参考答案)

《C语言程序设计》练习三(参考答案)三、阅读分析题1.请阅读分析下面程序,然后写出运行结果。

x=8,y=-5x=-5,y=82.请阅读分析下面程序,然后写出运行结果。

1 5 6 303.请阅读分析下面程序,然后写出运行结果。

#**$@@4.阅读下面程序,写出运行结果(已知A的ASCII码为65,a的ASCII码为97)。

运行结果:d,100,D,1445.阅读下面程序,并回答问题:(1)若程序运行时,输入3、2和5,则输出结果是什么?(2)写出程序所实现的功能。

答:(1)5,3,2(2)输入三个整数,按从大到小的顺序输出。

6.阅读下面程序,并回答问题:(1)程序输出结果是多少?(2)外循环执行完一次时,m和n的值分别是多少?(3)将while(n>m)n-=m;语句删除后,程序运行情况如何?答:(1)m=1(2)m=9,n=5(3)程序进入无限循环17.阅读下面程序,写出运行结果。

运行结果:7,10,9,9878.阅读下面程序,并回答问题:(1)若程序运行时,输入6和9,输出结果是什么?输出结果是:1(2)说明程序的功能。

程序功能:输入2个数存入a和b变量中,计算a2+b2存入x变量中,如果x大于100则将x整除100的值存入y中并输出y的值,否则输出a+b的值。

9.阅读下面程序,并回答问题:(1)程序输出结果是什么?输出结果:a=8(2)该程序完成什么功能?程序功能:求两个数的最大公约数(3)若将while循环替换为do-while循环,请写出相应的程序段。

#include <stdio.h>void main( ){ int u,v,a,b,t,r;u=24;v=16;if(u>v){t=u;u=v;v=t;}a=u;b=v;do{ r=b%a;b=a;a=r;}while(r!=0);printf(″b=%d\n″,b);}10.从键盘输入字符A时,写出下面程序的运行结果。

第3、4、5、6、7章C语言设计 习题答案

第3、4、5、6、7章C语言设计 习题答案

第三章习题答案1.掌握算法必须要掌握的五个特性:a)有穷性。

算法执行步骤的次数有限,能在有限时间内完成。

b)确切性。

每一步操作的执行步骤、执行结果确定,不能有二义性。

c)有效性。

算法中的每一步操作都是可执行的,即算法的每一步都能通过手工或机器在有限时间内完成。

d)必须有零个或多个输入。

e)必须有一个或多个输出。

2.算法是指令的有限序列,是求解问题显式的一步一步进行的过程。

为程序编写提供依据。

程序是用C语言单词将算法表达出来的过程。

算法是程序的灵魂。

3.数据类型总体分为三类:a)对象类型。

对象类型的基本类型又分为整型、浮点型、字符型。

b)函数类型。

c)不完全类型。

4.整型可分为:a)有符号整数。

它又包括 short int、int、long int、long long int。

b)无符号整数。

它又包括unsigned short int、unsigned int、unsigned longint、unsigned long long int。

不同数据类型数据的值域范围不同。

5.合法的标识符有:scanf、x、x1、_y 、_y2x、printf、main合法标识符由英文字母、数字、下划线组成,且第一个字符只能是英文字母或下划线。

关键词不能成为合法标识符。

6.略7.8.变量名:x 数据对象:3存储地址:&x 存储单元:8(在VS2005中)9.0x13B1:十六进制int型字面值;3e3:十进制 int型字面值;‘d’:字符型字面值;“my university”:字符串型字面值;99:十进制int型字面值;023:八进制int型字面值;1.3e-4:double型浮点型字面值;33U:十进制unsigned int型字面值;034L:八进制long int型字面值;0x34UL:十六进制unsigned long int型字面值;30.23L:十进制long double型字面值;30.23F:十进制float型字面值;10.\?:?\’:’\”:”\\:\\233:表示八进制int型整数233\x2f:表示十六进制int型整数 2f。

C语言第三、四章作业题答案

C语言第三、四章作业题答案

东华理工大学:C语言第三章作业题C程序设计第三章闭/开卷课程类别:考试/考查第三章顺序结构程序设计一、选择题1。

C语言中调用printf进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。

如果格式说明的个数小于输出项的个数,多余的输出项将 A ;如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或0)。

A)不予输出B)输出空格C)照样输出D)输出不定值或02.在scanf函数的格式控制中,格式说明的类型与输入的类型应该一一对应匹配.如果类型不匹配,系统 B 。

A)不予接收B)并不给出出错信息,但不可能得出正确信息数据C)能接受正确输入D)给出出错信息,不予接收输入3。

下列说法正确的是 D 。

A)输入项可以是一个实型常量,如scanf(”%f",4。

8);B)只有格式控制,没有输入项也能进行正确输入,如scanf(”a=%d,b=%d”);C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%5。

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

根据题目中已给出的数据的输入和输出形式,程序中输入/输出语句的正确是B 。

main(){int a;float x;printf("input a,x:”);输入语句输出语句}输入形式input a,x:3 2.1输出形式a+x=5。

10A)scanf("%d,%f",&a,&x);printf("\na+x=%4。

2f",a+x);B)scanf(”%d %f",&a。

&x);printf("\na+x=%4。

2f”,a+x);C)scanf(”%d %f”,&a,&x);printf(”\na+x=%6。

1f",a+x);D)scanf("%d %3.1f”,&a,&x);printf(”\na+x=%4。

C语言每月一练三打印(含答案)20150502

C语言每月一练三打印(含答案)20150502

《C语言程序设计》——练习三(2015.5.2)学号__________姓名_______________选择题(请在给定答案中选择一个正确答案)1. C 下列程序执行后的输出结果是___。

main() { char x=0xFFFF; printf("%d \n",x--); }A) -32767 B) FFFE C) -1 D) -327682. A 有如下函数调用语句,该函数调用语句中,含有的实参个数是___。

func(rec1,rec2+rec3,(rec4,rec5);A) 3 B) 4 C) 5 D) 有语法错3. C 下列分支语句合法的是___。

A) if(a>c) m=a else m=c; B) if a>c (if a>b) m=a;C) if (a>b && a>c) m=a; D) case 6,7:printf("reset\n");4. C 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为___。

A) 不定值B) 4 C) 3 D) 15. C 若给定条件表达式(M)?(a++):(a--)则其中表达式M能与下列表达式等价的是___。

A)(M==0) B)(M==1) C)(M!=0) D)(M!=0)6. C 若a=5,b=3,c=4,逻辑表达式!(a+b)&&!c的值为____。

A) 0 B) -1 C) 1 D) 27. B 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是___。

A) c=b=a; B) (a=c)‖(b=c) ; C) (a=c) &&(b=c); D) a=c=b;8. B 不能把字符串:Hello!赋给数组b的语句是___。

A) char b[10]={'H','e','l','l','o','!'}; B) char b[10];b="Hello!";C) char b[10];strcpy(b,"Hello!"); D) char b[10]="Hello!";9. A 当执行下面程序且输入:ABC时,输出的结果是___。

C语言程序设计教程第三章练习题题目

C语言程序设计教程第三章练习题题目

单选题1、若定义a=3,b=4,执行printf(“%d, %d”,(a,b),(b,a));的输出结果为()。

,4,3,3,42、如果要求在if后的判断条件是a不等于0,则下列选项中能正确表达这一关系的是()。

<>0B.!a=03、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前尚未配对的最近的ifD.同一行上的if4、有定义int t = 0;则有循环while(t=1){…},则下列关于while循环语句的描述中正确的是()。

A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式的值不合法D.以上说法都不对5、若有定义:int x ,i;则下列for循环语句:for(i = 0,x = 0; i<= 9 && x!=876;i++)scanf(“%d”,&x);下列选项中,描述正确的是()A.最多执行10次B.最多执行9次C.是无限循环D.循环体一次也不执行6、关于下面的for循环语句int i,k;for(i = 0,k = -1;k = 1;i++,k++) printf(“*****”);下列选项中,描述正确的是()A.判断循环结束的条件非法B.是无限循环C.只循环一次D.一次也不循环7、C语言程序的三种基本结构是()。

A.顺序结构,选择结构,循环结构B.递归结构,循环结构,转移结构C.嵌套结构,递归结构,顺序结构D.循环结构,转移结构,顺序结构8、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。

<>0B.!a=09、两次运行下面的程序,如果从键盘上分别输入6和4,那么输出结果是()。

void main(){int x;scanf("%d",&x);if (x++ > 5)printf("%d",x);elseprintf("%d\n",x--);}和5和3和4和410、运行以下程序后,如果从键盘上输入china#,那么输出结果为()。

C语言程序设计练习题第2 3部分答案

C语言程序设计练习题第2 3部分答案

C程序设计语言练习题第二部分44.数组定义为int a[3][2]={1,2,3,4,5,6},值为6的数组元素是______A) a[3][2] B) a[2][1] C) a[1][2] D) a[2][3]45.设有数组定义char array[]=“China”;则数组array 所占的空间为_____A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节46. 以下程序段的输出结果是________。

char ch[3][5]={“AAAA”,“BBB”,“CC”};printf(“%s\n”,ch[1]);A) BBB B) AAAA C) BBBCC D) CC47. 以下能对二维数组x正确进行初始化的语句是_________。

A) int x[2][ ] ={{1,0,1},{5,2,3}};B) int x[ ][3] ={{1,2,3},{4,5,6}};C) int x[2][4] ={{1,2,3},{4,5},{6}};D) int x[ ][ ] ={{1,0,1},{},{1,1}};48.以下程序的输出结果是________。

#include<string.h>main(){char w[][10]={“ABCD”,“EFGH”,“IJKL”,“MNOP”},k;for (k=1;k<3;k++)printf(“%s\n”,&w[k][k]);}A) ABCD B) ABCD C) EFG D) FGHFGH EFG JK KLKL IJ OM49.下面的程序运行后,输出的结果是__________(1)3+4+5+6+0main (){ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for (i=1;i<3;i++)for (j=0;j<=i;j++)s+=a[i][j];printf(“%d\n”,s);}(2)4 27 16main(){ int i, j;int a[6]={“12,4,17,24,27,16},b[6]={27,13,4,25,23,16};for(i=0; i<6; i++){ for(j=0; j<6; j++)if(a[i]==b[j]) break;if(j<6) printf(“%d”,a[i]);}printf(“\n”);}(3)8 20#include<string.h>main(){ch ar st[20]=“Good bye\0\t\’\\”;printf(“%d %d\n,strlen(st),sizeof(st));}(4)输入ABC 输出 ABC6789#include <stdio.h>#include <string.h>main( ){ char ss[10]=“12345” ;gets(ss); strcat (ss,”6789”); printf(“%s\n”,ss);}50.下面程序的功能是将一个字符串按逆序存放,请填空:#include<string.h>main(){char str[80],m;int i,j;gets(str);for (i=0,j=strlen(str);i<_j-1_____;i++,j--){m=str[i];str[i]=_str[j-1]_____; str[j-1]=m;}printf(“%s\n”,str);}51.下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

江南大学现代远程教育第三阶段练习题考试科目:《C语言程序设计》第10章至第13章(总分100分)一、单项选择题(本题共20小题,每小题2分,共40分。

)1、若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(D)。

A、p=q;B、 *p=*q;C、 n=*q;D、 p=n;2、已定义以下函数fun (int *p){ return *p: }该函数的返回值是(C)。

A、不确定的值B、形参p中存放的值C、形参p所指存储单元中的值D、形参p的地址值3、有以下程序main(){ char *s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}执行后输出结果是(C)。

A、n,twoB、t,oneC、w,oneD、o,two4、若有定义:int *p[3];, 则以下叙述中正确的是( B )。

A、定义了一个基类型为int的指针变量p,该变量具有三个指针B、定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针C、定义了一个名为*p的整型数组,该数组含有三个int类型元素D、定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素5、已定义以下函数fun(char *p2, char *p1){ while((*p2=*p1)!=‘\0’){p1++;p2++; } }函数的功能是(A)。

A、将p1所指字符串复制到p2所指内存空间B、将p1 所指字符串的地址赋给指针 p2C、对p1和p2两个指针所指字符串进行比较D、检查p1和p2两个指针所指字符串中是否有‘\0’6、有以下程序void fun(char *c,int d){ *c=*c+1;d=d+1;printf(“%c,%c,”,*c,d);}main(){ char a=’A’,b=’a’;fun(&b,a); printf(“%c,%c\n”,a,b);}程序运行后的输出结果是(D)。

A、B,a,B,aB、 a,B,a,BC、 A,b,A,bD、 b,B,A,b7、若有以下的说明,则对初值中字符'a'的引用方式为(B)。

static struct st{ char ch;double x;char a[];}struct st c[2][2]={{'a',3.5,'bc'},{'c',4.5,'de'},{'m',8.6,'abc'}};A、c.chB、c[0][0].chC、c[1][1].chD、a[0]8、有以下程序#include <stdio.h>main( ){ FILE *fp; int i,k=0,n=0;fp=fopen(“d1.dat”,”w”);for(i=1;i<4;i++) fprintf(fp,”%d”,i);fclose(fp);fp=fopen(“d1.dat”,”r”);fscanf(fp,”%d%d”,&k,&n); printf(“%d %d\n”,k,n);fclose(fp);}执行后输出结果是(B)。

A、1 2B、 123 0C、 1 23D、 0 09、有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是(D)。

A、5B、6C、8D、910.运行下列程序后的输出结果是( B) 。

main(){ char str[][10]={"China","Beijing"},*p=*str;printf("%s\n",p+10);}A、ChinaB、BeijingC、ngD、ing11、以下枚举类型的定义中正确的是(B)。

A、enum a={one, two, three};B、enum a {one=9, two=-1,three};C、enum a={“one” , “two”, “three”};D、enum a {“one”, “two”, “three”};12、设有说明:union data {int i;float f;struct {int x;char y;}s;double d;}a;在16位微机环境下,int类型的整数占用两个字节,则变量a在内存中所占字节数为( A )。

A、8B、17C、9D、1513、下面对结构数据类型的叙述中,( C )是错的。

A、结构变量可以在说明结构类型后定义,也可在说明结构时定义B、结构可由若干个成员组成,各成员的数据类型可以不同C、定义一个结构类型后,编译程序要为结构的各成员分配存储空间D、结构变量的各成员可通过结构变量名和指向结构变量的指针引用14、有以下程序#include <string.h>main(){ char *p=“abcde\Ofghjik\0”;printf(“%d\n”,strlen(p));}程序运行后的输出结果是(D)。

A、12B、15C、 6D、 515、以下叙述中错误的是(D)。

A、二进制文件打开后可以先读文件的末尾,而顺序文件不可以B、在程序结束时,应当用fclose函数关闭已打开的文件C、在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D、不可以用FILE定义指向二进制文件的文件指针16、若有如下说明,则(D)的叙述是正确的。

struct st{int a;int b[2];}a;A、结构体变量a与结构体成员a同名,定义是非法的B、程序只在执行到该定义时才为结构体st分配存储单元C、程序运行时为结构体st分配6个字节存储单元D、类型名struct st可以通过extern关键字提前引用(即引用在前,说明在后)17、对于用"r"方式打开文件下列说法正确的是(B)。

A、用"r"方式打开的文件只输入不能输出B、用"r"方式打开的文件只能输出,不能输入C、用"r"方式可以打开任何文件D、以上均不对18、在C语言中,文件若按数据的组织形式分类可分为(B)。

A、字符文件和数字文件B、ASCII文件和二进制文件C、顺序文件和随机文件D、以上均不对19、如有以下定义“int y[4][4]={1,2,3,4,5,6,7,8,9,10},*pyl=y[l],(*py2)[4]=y;”,则不能正确引用值为7的数组元素的表达式是(B)。

A、*(y[l]+2)B、*(y+1)+2C、pyl[2]D、py2[1][2]20、若有以下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是(C)。

A、*p+6B、*(p+6)C、*p+=5D、p+5二、填空题(本题共6小题,每空2分,共30分)1、以下程序输出整形变量a的值,错误的语句是(4) ,应改为p=&a;。

(1)main()(2){int a, *p;(3)a=100;(4)*p=a;(5)printf(“a=%d”,*p);(6)}2、下面的程序用来统计文件中字符的个数,请填空。

#include "stdio.h"main(){ FILE *fp;long num=0;if((fp=fopen("filename.dat","r"))== NULL ){ printf("cannot open file!\n");exit(0);}while(!feof(fp) ){ fgetc(fp);num++ ;}fclose(fp);printf("num=%d\n",num);}3、以下程序运行后输出的第一行内容是AD,第二行内容是BC,第三行内容是BB。

# include<string.h>main(){ char *s1=”BD”,*s2=”BC”,*s3=”AB”;if (strcmp(sl,s2)>0) swap(sl,s2);if (strcmp(s2,s3)>0) swap(s2,s3);if (strcmp(sl,s2)>0) swap(sl,s2);puts(sl);puts(s2);puts(s3);}swap(char *s1,char *s2){ char t;t= *s1;*s1=*s2;*s2=t;}4、下面的函数用于比较两个给出的C字符串。

按比较结果,函数将返回下列函数值:若: s1=s2 返回0s1<s2 返回负值s1>s2 返回正值,请填空。

[程序]scmp(char *s1,char *s2){while(*s1)if( *s1-*s2 )return( *s1-*s2 );else{s1++;s2++;}return( 0 );}5、C程序中,数据可以用二进制和ASCII两种代码形式存放。

6、运行程序后输出的第一行内容是n1=t,n2=u、第二行内容是a=tesustring,b=tesusfg。

#include <string.h>main(){static char a[50]="test";char b[40],*p;p=a;*(p+3)+=1;strcpy(b,"abcdefg");strcat(a,"string");strncpy(b,a,5);printf("n1=%c,n2=%c\t",*p,*(p+3));printf("a=%s,b=%s\n",a,b); }三、编程题(本题共2小题,每小题15分,共30分)1、现有四个学生数据,每个学生数据结构包含姓名、学号和性别要求编一程序实现以学号为主键对四个学生的数据按从大到小的顺序排列。

#include <conio.h>#include <stdio.h>struct student { char name[6]; int code; char sex; };void fun ( ){int j,k,s,max;struct student a[]={{"Jon",4,'m'},{"smith",6,'m'),{"Jury",3,'f'},{"Mary" ,2,'f'}}; struct student sl;for(j=0;j<4, j++){ max=a[j].code; s=j; for(k=j+l;k<4,k++)if(a[k].code>max){ max=a[k].code; s=k; }sl=a[j]; a[j]=a[s]; a[s]=sl; }for(j=0; j<4; j++)printf ("\n%s,%d,%c",a[j].name,a[j].code, a[j].sex);}main(){ fun(); }2、p的近似值可用以下公式求得:由以上公式可知,若n取值100000,则最后一项的值已为10-8,认为可达到精度要求,编一个程序实现求p的近似值,并把结果放在out.txt文件中。

相关文档
最新文档