安徽大学2014年c语言平时作业
2014C语言程序设计(含答案)
一、写出下列程序段的运行结果(40分)1.(4分)char a= 'F'-'E',b= '\12',c=12,d;c = a<b<c;d =--a&& b++;printf("%d,%d,%d,%d",a,b,c,d);2.(4分)int a=2, b=5;printf("a=%%d,b=\\d,");b/=a;a+=a-b;printf("%d,%d",a,b);3.(4分)char a=256;printf("%d,",a++);a=(int)(13/5+1.4);printf("%d",a);4.(4分)int p[8]={11,12,13,14,15,16,17}; int i=0,j=0;while (i++<7) (第一次循环i=1)if (p[i]%2) j+=p[i];printf("%d\n",j);5.(4分)int a=3,b=5;void exchange(int a, int b){int t;t=a; a=b; b=t;printf("%d,%d\n", a, b);} int main(){exchange(a,b);printf("%d,%d\n",a,b);return 0;}6.(4分)void f(char ch){if (ch>'A'){f(ch-1);}putchar(ch);}int main(){f('D');return 0;}7.(4分)char str[10]="123456789"; int i;for (i=9; i>0; i/=2){str[i]=0;printf("%s\n",str);}8.(4分)struct {int x; int y; int z;}a[3] ={1,2,3,4,5,6,7,8,9};printf("%d,%d\n", a[1].x+a[2].y, a[1].y+a[2].z);9.(4分)int a[8]={1,2,3,4,5,6,7,8};int i=1, *p = a;while (p<a+8){p rintf("%d ",*p);p = p+i;i*=2;} 10.(4分)FILE *fp;int d=20150111;char c1,c2;char str[4];fp=fopen("a.tmp","w");fprintf(fp,"%d", d);fclose(fp);fp=fopen("a.tmp","r");c1=fgetc(fp);fgets(str, 4, fp);c2=fgetc(fp);fscanf(fp, "%d", &d);printf("%c,%s,%c,%d",c1,str,c 2,d);二、改错题(20分)以下程序实现:从键盘输入20个学生的成绩数据,将这些数据存到磁盘文件“stu.dat”上,并求这些学生的最差成绩。
安徽大学C语言实验平台作业答案汇总
实验三?C基本数据类型及运算1. 编程:根据需要定义相关变量,键盘输入、、三个实数分别赋给相关三个变量,输出该3个变量的和s、乘积p和平均值a。
???? 2. 编程:输入球的半径,计算球体表面积和球体积。
???? 3. 编程:定义6个变量,通过键盘将“10,? -10,? 40000,? a,? ,? hello”这六个值分别赋给相应变量,然后在屏幕上输出变量的值(每行输出一个变量)。
???? 4. 编程:从键盘接收1个字符给变量s1,1个字符串(允许带有空格)给字符数组s2,输出字符变量s1的ASCII码值及字符数组s2中的字符串。
???? 5. 编程:从键盘输入二个整数分别赋给整型变量a、b,将它们按由小到大的顺序输出。
???? 6. 编程:调用标准库函数sin(x)计算6800的正弦值(此题为选做)。
???? 7. 编程:键盘输入一个实数赋给变量x,计算 y=x*x*x+x*x+x 的值,分别输出y值、y值的整数部分和小数部分(此题为选做)。
???? 8. 编程:键盘输入四个整数分别赋给整型变量a、b、c、d,用三目运算方法将它们按由大到小的顺序输出(此题为选做)。
1. #include<>main(){float x,y,z,s,p,a;scanf("x=%fy=%fz=%f",&x,&y,&z);s=x+y+z;p=x*y*z;a=s/3;printf("s=%f,p=%f,a=%f",s,p,a);}2. #include<>main(){float r,s,v;printf("input r");scanf("%f",&r);s=4**r*r;v=4/3**r*r*r;printf("s=%f,v=%f",s,v);}3. #include<>main(){int a,b;long c;char d,st[6];float e;scanf("%d%d%ld%c%f%s",&a,&b,&c,&d,&e,st);printf("a=%d\n,b=%d\n,c=%d\n,d=%c\n,e=%f\n,ch=%s",a,b,c,d,e,st);}4. #include<>main(){ char s1,s2[6];scanf("%c%s",&s1,s2);printf("s1=%d,s2=%s",s1,s2); }5. #include<>main(){ int a,b;scanf("a=%db=%d",&a,&b);if (a<b)printf("a=%db=%d",a,b);elseprintf("b=%da=%d",b,a);}6. #include<>#include<>main(){float a,b;scanf("%f",&a);b=sin(a);printf("%f",b);}7. #include<>main(){float x,y,b;int a;scanf("%f",&x);y=x*x*x+x*x+x;a=(int)y;b=y-a;printf("%f\n%d\n%f\n",y,a,b);}实验四?C分支结构程序设计1. 编程:从键盘输入一个字符,如是大写字母,则输出相应小写字母;如是小写字母,则原样输出;其它字符输出“Not letter!”。
安徽大学C语言12-13
1.一个C程序的执行是从。
A. 本程序的main函数开始,到main函数结束B. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C. 本程序的main函数开始,到本程序文件的最后一个函数结束D. 本程序文件的第一个函数开始,到本程序main函数结束2. C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符。
A.必须为字母B.必须为下划线C. 必须为字母或下划线D. 可是字母、数字或下划线中任一字符3.下面四个选项中,不合法整型常量的选项是。
A.160B.-0x48aC.011D.06684.若x、i、j和k都是int型变量,则执行表达式:x=(i=4,j=16,k=32)后,x的值为。
A. 4B. 16C. 32D. 525.已知ch是字符型变量,下面不正确的赋值语句是。
A. ch=’a+b’B. ch=’\0’C. ch=’7’+’9’D. ch=7+96.设有int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为。
A. 1B. 2C. 3D. 47. 下列函数定义中,正确的是。
A. void f(int x)B. int f(int *x,int *y){ return(x); } { return(y); }C. int *f(int x,int *y)D. void f(int x,int *y){ return(y);} { return(x+*y); }8. 设有定义:float x,*p=&x;则下列表达式中错误的是。
A. *&pB. *&xC. &*pD. &*x9. 下列数组定义语句中,错误的是。
A. char a[2][3]={{ˊaˊ},{ˊbˊ}};B. int a[][2]={1,2,3,4,5,6};C. int a[][3]={1,2,3,4,5,6};D. int a[][]={{1,2,3},{4,5,6}}; 10.若有定义:int (*p)[4];则标识符p 。
安徽大学C语言实验平台答案(新版)
实验一 C简单程序设计1. 以下程序用于输入长方形的长、宽,计算长方形的面积、周长和对角线长。
#include <stdio.h>#include <math.h>main(){float x,y,s,l,r;printf("input x,y=");scanf("%f,%f",&x,&y);s=x*y;l=2*(x+y);r=sqrt(x*x+y*y);printf("s=%6.2f l=%6.2f r=%6.2f ",s,l,r);}请调试运行程序,要求:(1) 编辑、编译、链接并运行程序。
(2) 将输出语句改为 printf("s=%6.3f l=%6.3f r=%6.3f ",s,l,r); ,再运行程序,结果是否有变化?(3) 将程序第4行float x,y,s,l,r;与第6行 scanf("%f,%f",&x,&y); 交换位置,再编译,会如何?(4) 混淆程序中的大小写字母。
试分别将printf写为Printf,或将main写为Main或MAIN,或将程序中语句s=x*y;写为S=x*y; 再编译、链接、运行,结果如何?(5) 遗漏语句未尾分号。
如将printf("input x,y=");的分号去掉,再编译、链接、运行,情况如何?(6) 若遗漏scanf()语句中的“&”符号。
例如:若将 scanf("%f,%f",&x,&y); 改为 scanf("%f,%f",x,y); ,或改为 scanf("%f,%f",&x,y);,再重新编译、链接、运行,情况如何?(7) 将scanf()语句中“%f,%f”改为“%f%f”,输入数据的格式是否要变?(8) 参考教材P360页,C.3 高级调试方法,在程序中设置断点,并单步调试程序。
安徽大学C语言期末试卷(含答案)
安徽大学C语言程序设计期末试题一.单项选择题:(每题2分,共20分)1.执行程序:int a;printf("%d\n",(a=3*5,a*4,a+5));后,a的值是______。
A)60B)20C)15D)102.程序段:int x=023;printf("%d\n",--x);的输出是______。
A)19B)18C)23D)223.程序段:static char s[10]={'C','h','i','n','a'};printf("%d\n",strlen(s));的输出是______。
A)6B)5C)11D)104.若fun(int x){printf(“%d\n”,x);},则fun_______。
A)返回值为void类型B)返回值类型无法确定C)返回值为int类型D)没有返回值5.有宏定义:#define MULT1(a,b)a*b#define MULT2(a,b)(a)*(b)且引用宏:y=MULT1(3+2,5+8);z=MULT2(3+2,5+8);则y和z的值是______。
A)y=65,z=65B)y=21,z=65C)y=65,z=21D)y=21,z=216.程序段char s[]="Hello",*p;p=s;执行后,*(p+5)的值是______。
A)'o'B)'\0'C)'o'的地址D)不确定的值7.程序段:char*s=”ABCD”,*p;for(p=s;*p;p++)printf("%s\n",p);的输出是______。
A)ABCDB)AC)DD)ABCDBCD B C ABCCD C B ABD D A A8.若定义:int(*p)[3];则标识符p______。
安徽大学计算机基础C语言选择题
安徽大学计算机基础C语言选择题1、能将高级语言编写的源程序转换成目标程序的是______。
A) 编辑程序 B) 编译程序 C) 解释程序 D) 链接程序参考答案: B2、以下选项中合法的用户标识符是______。
A) long B) _2Test C) 3Dmax D) A.dat参考答案: B3、在一个C语言程序中A) main函数必须出现在所有函数之前B) main函数必须出现在所有函数之后C) main函数可以在任何地方出现D) main函数必须出现在固定位置删除参考答案: C4、下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头B) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头C) 用户标识符中不可以出现中划线,但可以出现下划线D) 用户标识符中可以出现下划线和中划线(减号)参考答案: C5、已知 int a=2,b=1,c;执行语句c=b/a+2.5后, c的值____。
A) 2.5 B) 3 C) 3.0 D) 2参考答案: D6、已知:char a;int b;float c;double d;执行语句"c=a+b+c+d;"后,变量c的数据类型是。
A) int B) char C) float D) double参考答案: C7、已知inti=10;表达式"20-5<=i<=9"的值是____。
A) 0 B) 1 C) 19 D) 20参考答案: B8、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式____。
A) c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122B) !(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)C) c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122D) !(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)参考答案: D9、已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是____。
C语言课后习题答案2014年新版(完整版)
习题答案习题1(参考答案)1.程序与算法的概念及二者的区别是什么?程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成。
算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。
通俗地讲,就是计算机解题的步骤。
算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。
2.简述程序设计语言发展的过程程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。
一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面对象的编程语言为第四代。
3.简述高级程序设计语言中面向过程与面向对象的概念。
“面向过程”是一种以过程为中心的编程思想。
首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候依次调用函数即可。
一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。
“面向对象”是一种以事物为中心的编程思想。
面向对象的方法主要是将事物对象化,对象包括属性与行为。
面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。
编程关注的是如何把相关的功能(包括函数和数据)有组织地捆绑到一个对象身上。
4.C语言程序的特点是什么?(1)C语言非常紧凑、简洁,使用方便、灵活,有32个关键字,有9种流程控制语句。
(2)C语言运算符丰富,共有45个标准运算符,具有很强的表达式功能,同一功能表达式往往可以采用多种形式来实现。
(3)数据类型丰富。
C语言的数据类型有整型、实型、字符型、数组类型、结构类型、共用类型和指针类型,而且还可以用它们来组成更复杂的数据结构,加之C语言提供了功能强大的控制结构,因而使用C语言能非常方便地进行结构化和模块化程序设计,适合于大型程序的编写、调试。
安徽大学C语言期末上机考试试卷及答案
2013上机考试试题一、单项选择题1.下列运算符中优先级最高的是【C 】A.||B.*C.++D.&&2.下列数据中定义正确的是【D 】A. char str[3][]={“abc”,’1’};B. char str[][3]={“abc”,’1’};C. char str[3][]={‘a’,’1’};D. char str[][3]={‘a’,’1’};3.下列符号常量的定义中正确的是【D 】A. #define N 1 3B. define N 3C. #define N-1 3D. #define N 34. 下列标识符中不能作为函数名的是【A 】A. 3_fnB. fn_fnC. fn_0D. fn5. 定义float Num; *ptr=&Num; 下列表达式中错误的是【B 】A. *&ptrB. &*NumC. &*ptrD. *&Num6. strlen(“\\129\129abc\t”)的值是【C 】A. 9B. 12C. 10D. 77.整型变量做实参时,它和对应形参之间的数据传递方式是【D 】A. 由用户指定传递方式B. 双向值传递C. 地址传递D. 单向值传递8. 函数调用不可以出现在【A 】中A. 函数的形参B. 表达式C. 函数的实参D. 执行语句9. 下列程序的输出结果是【B 】Int a[]={1,2,3,4,5,6},*pa;pa=a;*(pa+2)+=2;Printf(“%d%d”,*pa,*(pa+2));A. 06B. 15C. 04D. 1410. 以下函数说明正确的是【A 】A. short max (int X, int Y);B. short max (int X; int Y);C. short max (int X; int Y)D. short max (int X, Y)11. char *str=”1234”;char *p;p=str;printf(“%s”,p+1);输出结果是【B 】A. 1234B. 234C. 134D. 12312. 下列条件表达式中,【C 】可以判断c是否为大写字母。
安徽大学期末试卷安徽大学C语言考试试卷.doc
安徽大学期末试卷安徽大学2008----2009学年第二学期C语言程序设计期中试题一、单项选择题(30分,每题2分)每小题的四个选项中只有一个符合题目要求,请将正确选项前字母填在括号中。
1.若int a[][3]={1,2,3,4,5,6};则a[1][0]的值是【______】。
A. 4B. 2C. 1D. 52.执行下列程序段后,变量k的值是【______】。
int k=3, s[2];s[0]=k;k = s[1]*10;A)不确定B)0C)10 D)303.执行下列程序段后,变量k的值是【______】。
int k=3, s[2]={1};s[0]=k;k = s[1]+10;A)不确定B)0C)10 D)304.下面程序的输出结果是【______】。
#include <stdio.h>void main(void){int i, a[10];for(i=9;i>=0; i--)a[i]=10-i;printf("%d%d%d\n",a[2],a[5],a[8]);}A)258 B)741C)852 D)3695.下面程序的输出结果是【______】。
#include <stdio.h>void main(void){int a[3][3]={1,2,3,4,5,6,7,8,9},i;for(i=0;i<3; i++)printf("%d ",a[i][2-i]);}A)1 5 9 B)3 5 7C)1 4 7 D)3 6 96.下面程序的输出结果是【______】。
安徽大学期末试卷#include "stdio.h"void fun(int a[]){int i;for(j=0;j<5; j++)a[j]=j;}void main(void){int num[]={5,6,7,8,9}, i;fun(num);for(i=0;i<5; i++)printf("%d ", num[i]);}A. 56789B. 98765C. 01234D. 432107.下面程序的输出结果是【______】。
C语言各章作业及练习题
第二章作业题答案1 进制转换(1)7A.3D (或者7A.3DH)(2)01001011.01010111,4B.57 (二进制最前面的“0”可以省去;十六进制也可4B.57H)2 码制转换(1)原码:01010; 真值:+0.1010(2)原码:10110; 真值:-0.01103 设某机器字长为8位:(1)-1(2)-2-7(还可以进一步计算为:-0.0078125)4.浮点数转换为二进制:(A27F)16= (1010001001111111)2阶码补码为:E补=101000,则阶码真值E = -11000 = -24;尾数补码:M补= 1.001111111,尾数真值M = - 0.110000001;则(A27F)16的十进制真值为:- (2-1+2-2+2-9) x 2-24 = -(2-25+2-26+2-33)上面的结果还可以进一步化简写成分数或小数,只写到这一步也可以。
5将十进制数-7.25转换为IEEE754短浮点格式:(1)转换为二进制:(-7.25)10=(-111.01)2(2)规格化:(-111.01)2 = (-1.1101)2 x22(3)计算阶码(移码表示):E移= 127+2 = (129)10 = (10000001) 2(4)短浮点格式:(11000000111010000000000000000000)2 = (C0E80000)166.(1) 1000H,1006H(2) 1002H,2374H(3) E529H7 设当前堆栈状态如图3所示,按字编址,下列各小题分别执行,写出结果:(1)(SP) = 1003H, (R0) = 32H(2)(SP) = 1001H,(R0)=1000H,存储单元1000H~1002H的值分别是30H、1000H、32H。
第六章作业题一、选择题1.某字符显示器,分辨率为25x80,则第2行第5列(序号均从0开始)字符的代码,应存放在基本显示缓存的第()单元中(从0号单元开始)。
安徽大学C语言实验平台作业答案完整版
安徽大学C语言实验平台作业答案Company number:【0089WT-8898YT-W8CCB-BUUT-202108】实验三C基本数据类型及运算1. 编程:根据需要定义相关变量,键盘输入、、三个实数分别赋给相关三个变量,输出该3个变量的和s、乘积p 和平均值a。
2. 编程:输入球的半径,计算球体表面积和球体积。
3. 编程:定义6个变量,通过键盘将“10,-10, 40000, a,,hello”这六个值分别赋给相应变量,然后在屏幕上输出变量的值(每行输出一个变量)。
4. 编程:从键盘接收1个字符给变量s1,1个字符串(允许带有空格)给字符数组s2,输出字符变量s1的ASCII 码值及字符数组s2中的字符串。
5. 编程:从键盘输入二个整数分别赋给整型变量a、b,将它们按由小到大的顺序输出。
6. 编程:调用标准库函数sin(x)计算6800的正弦值(此题为选做)。
7. 编程:键盘输入一个实数赋给变量x,计算 y=x*x*x+x*x+x 的值,分别输出y值、y值的整数部分和小数部分(此题为选做)。
8. 编程:键盘输入四个整数分别赋给整型变量a、b、c、d,用三目运算方法将它们按由大到小的顺序输出(此题为选做)。
1.#include<>main(){float x,y,z,s,p,a;scanf("x=%fy=%fz=%f",&x,&y,&z);s=x+y+z;p=x*y*z;a=s/3;printf("s=%f,p=%f,a=%f",s,p,a);}2.#include<>main(){float r,s,v;printf("input r");scanf("%f",&r);s=4**r*r;v=4/3**r*r*r;printf("s=%f,v=%f",s,v);}3.#include<>main(){int a,b;long c;char d,st[6];float e;scanf("%d%d%ld%c%f%s",&a,&b,&c,&d,&e,st);printf("a=%d\n,b=%d\n,c=%d\n,d=%c\n,e=%f\n,ch=%s",a,b,c,d,e,st);}4.#include<>main(){ char s1,s2[6];scanf("%c%s",&s1,s2);printf("s1=%d,s2=%s",s1,s2);}5.#include<>main(){ int a,b;scanf("a=%db=%d",&a,&b);if (a<b)printf("a=%db=%d",a,b);elseprintf("b=%da=%d",b,a);}6.#include<>#include<>main(){float a,b;scanf("%f",&a);b=sin(a);printf("%f",b);}7.#include<>main(){float x,y,b;int a;scanf("%f",&x);y=x*x*x+x*x+x;a=(int)y;b=y-a;printf("%f\n%d\n%f\n",y,a,b);}实验四C分支结构程序设计1. 编程:从键盘输入一个字符,如是大写字母,则输出相应小写字母;如是小写字母,则原样输出;其它字符输出“Not letter!”。
安徽大学2014年c语言平时作业讲解
作业一 C语言基本概念选择:17题能将高级语言编写的源程序转换成目标程序的是______。
A) 编辑程序B) 编译程序C) 解释程序D) 链接程序您的答案为:B 参考答案为:B以下选项中合法的用户标识符是______。
A) long B) _2Test C) 3Dmax D) A.dat您的答案为:B 参考答案为:B以下叙述正确的是A) 可以把define和if定义为用户标识符B) 可以把define定义为用户标识符,但不能把if定义为用户标识符C) 可以把if定义为用户标识符,但不能把define定义为用户标识符D) define和if都不能定义为用户标识符您的答案为:B 参考答案为:B以下叙述正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚、具有其他语言的一切优点您的答案为:C 参考答案为:C在一个C语言程序中A) main函数必须出现在所有函数之前B) main函数必须出现在所有函数之后C) main函数可以在任何地方出现D) main函数必须出现在固定位置您的答案为:C 参考答案为:C一个C语言程序是由_______组成的。
A) 一个主程序和若干子程序 B) 若干子程序 C) 函数 D) 若干过程您的答案为:C 参考答案为:C以下叙述中正确的是()A) C语言的源程序不必通过编译就可以直接运行B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令C) C源程序经编译形成的二进制代码可以直接运行D) C语言中的函数不可以单独进行编译您的答案为:B 参考答案为:B下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头B) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头C) 用户标识符中不可以出现中划线,但可以出现下划线D) 用户标识符中可以出现下划线和中划线(减号)您的答案为:C 参考答案为:C以下说法中正确的是A)C语言程序总是从第一个定义的函数开始执行B)C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分您的答案为:C 参考答案为:C默认情况下,一个C程序的执行是从A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束您的答案为:A 参考答案为:AC语言编程整个操作的过程是A)编辑、编译、链接、执行B)编译、编辑、链接、执行C)链接、编译、编辑、执行D)编辑、链接、编译、执行您的答案为:A 参考答案为:A下列说法不正确的是A)链接操作将生成扩展名为.lnk的文件B)编辑过程将生成扩展名为.cpp或.c的文件C)编译过程将生成扩展名为.obj的文件C)C编程最终要生成扩展名为.exe的文件您的答案为:A 参考答案为:AC语言提供了丰富的结构化语句,直接支持____、_____和_______三种基本程序结构。
安徽大学C语言12-13答案
安徽大学20 12 —20 13 学年第 1 学期《高级语言程序设计》(A卷)考试试题参考答案及评分标准一、单项选择题(本大题共10小题,每小题2分,共20分)每小题的四个选项中只有一个符合题目要求,请将正确选项前字母填在括号中。
1.A 2.C 3.D 4.C 5. A 6. B 7. C 8. D 9. D 10. C二、填充题(本大题共10小题,每小题2分,共20分)1. 其之前最近的if2. (x>2 && x<3) || x<-103. 34. 05. 整型常量或整型常量表达式6. 单向值传递(或值传递)7. 局部变量 8. 89. x[3][2] 10. 5.14三、阅读程序题(20分,每题5分)阅读程序,按格式将程序运行的输出结果填写在题目右侧的空白处。
(1)12624120 【每个数字各1分】(2)56 45 34 23 12 【每个数字各1分】(3)#&*&% 【每个字符各1分】(4) ************* 【每行字符各1分】四、程序填充题(10分,每题5分)(1)i-1 【2分】a[j+1]=a[j] 【2分】a[j+1] 【1分】(2)r 【2分】fgetc(fp) 【2分】count++ 【1分】五、程序设计题(30分,每题10分)(1)#include <stdio.h>int main( void ){short a, b, c, i;【定义 1分】printf("水仙花数:");for(i=100; i<=999; i++)【循环 1分】{a=i%10; 【计算个位 2分】b=i%100/10; 【计算十位 2分】c=i/100; 【计算百位 2分】if(i==a*a*a+b*b*b+c*c*c)【判断 1分】printf("%5d,",i);【输出 1分】}printf("\n");return 0;}(2)#include <stdio.h>void main(){int cocks=0,hens,chicks; 【定义及初值2分】while(cocks<=20){ 【循环控制 2分】hens=0; 【hens初值 1分】while(hens<=33){ 【循环控制 2分】chicks=100-cocks-hens;if(5.0*cocks+3.0*hens+chicks/3.0==100.0)【条件判断 2分】printf("公鸡=%d;母鸡=%d;小鸡=%d \n",cocks,hens,chicks);【输出 1分】hens++;}cocks ++;}}(3)#include<stdio.h>void main(){struct DATE{int year ;int month ;int day;}today; 【结构体定义 2分】int x[]={0,31,28,31,30,31,30,31,31,30,31,30},i,j,y,m,d;s=0; 【定义及初值 2分】printf("Input today yy mm dd:");scanf("%d%d%d",&today.year,&today.month,&today.day) 【成员赋值 2分】y=today.year;m=today.moth;d=today.day;for (i=1;i<m;i++) s+=x[i];s+=d; 【贫年天数计算2分】if (y%4==0&&y%100!=0||y%400==0)&&(m>=3)s++; 【闰年判断 2分】printf("Today is the %d days of this year",s);}。
安徽大学2015_C语言试卷
#include <conio.h> #include <stdio.h> void main()
{ int a[10]={10,4,2,7,3,12,5,34,5,9},i;
{ int n;
/***********begin***********/
/************end************/ }
3. 要求程序的功能是:按下面的公式求 sum 的值。 sum = 1 - 2 + 3 - 4 + 5 - 6 + …… + 99 - 100 #include "stdio.h" void main() { int sum; /***********begin***********/
printf("%d %d\n",x--,--y); }
A.10 10
B. 9 9
C. 9 10
D. 10 9
10. 假定等级和分数有以下对应关系:
等级:A 分数:85~100 等级:B 分数:60~84 等级:C 分数:60 以下 对 于 等 级 grade 输 出 相 应 的 分 数 区 间 , 能 够 完 成 该 功 能 的 程 序 段 是
二、填空题(每题 2 分,共 10 分) 请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。
1. 表达式“(a>b)?a:b”的作用是获得 a、b 中的
。
2. 表达式“a+=b,b=a-b,a-=b;”的作用是
。
3. continue 语句在循环体中执行时提前_______ 循环;
C语言课后习题答案2014年新版(完整版)
习题答案习题1(参考答案)1.程序与算法的概念及二者的区别是什么?程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成。
算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。
通俗地讲,就是计算机解题的步骤。
算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。
2.简述程序设计语言发展的过程程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。
一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面对象的编程语言为第四代。
3.简述高级程序设计语言中面向过程与面向对象的概念。
“面向过程”是一种以过程为中心的编程思想。
首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候依次调用函数即可。
一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。
“面向对象”是一种以事物为中心的编程思想。
面向对象的方法主要是将事物对象化,对象包括属性与行为。
面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。
编程关注的是如何把相关的功能(包括函数和数据)有组织地捆绑到一个对象身上。
4.C语言程序的特点是什么?(1)C语言非常紧凑、简洁,使用方便、灵活,有32个关键字,有9种流程控制语句。
(2)C语言运算符丰富,共有45个标准运算符,具有很强的表达式功能,同一功能表达式往往可以采用多种形式来实现。
(3)数据类型丰富。
C语言的数据类型有整型、实型、字符型、数组类型、结构类型、共用类型和指针类型,而且还可以用它们来组成更复杂的数据结构,加之C语言提供了功能强大的控制结构,因而使用C语言能非常方便地进行结构化和模块化程序设计,适合于大型程序的编写、调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业一 C语言基本概念选择:17题能将高级语言编写的源程序转换成目标程序的是______。
A) 编辑程序B) 编译程序C) 解释程序D) 链接程序您的答案为:B 参考答案为:B以下选项中合法的用户标识符是______。
A) long B) _2Test C) 3Dmax D) A.dat您的答案为:B 参考答案为:B以下叙述正确的是A) 可以把define和if定义为用户标识符B) 可以把define定义为用户标识符,但不能把if定义为用户标识符C) 可以把if定义为用户标识符,但不能把define定义为用户标识符D) define和if都不能定义为用户标识符您的答案为:B 参考答案为:B以下叙述正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚、具有其他语言的一切优点您的答案为:C 参考答案为:C在一个C语言程序中A) main函数必须出现在所有函数之前B) main函数必须出现在所有函数之后C) main函数可以在任何地方出现D) main函数必须出现在固定位置您的答案为:C 参考答案为:C一个C语言程序是由_______组成的。
A) 一个主程序和若干子程序 B) 若干子程序 C) 函数 D) 若干过程您的答案为:C 参考答案为:C以下叙述中正确的是()A) C语言的源程序不必通过编译就可以直接运行B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令C) C源程序经编译形成的二进制代码可以直接运行D) C语言中的函数不可以单独进行编译您的答案为:B 参考答案为:B下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头B) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头C) 用户标识符中不可以出现中划线,但可以出现下划线D) 用户标识符中可以出现下划线和中划线(减号)您的答案为:C 参考答案为:C以下说法中正确的是A)C语言程序总是从第一个定义的函数开始执行B)C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分您的答案为:C 参考答案为:C默认情况下,一个C程序的执行是从A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束您的答案为:A 参考答案为:AC语言编程整个操作的过程是A)编辑、编译、链接、执行B)编译、编辑、链接、执行C)链接、编译、编辑、执行D)编辑、链接、编译、执行您的答案为:A 参考答案为:A下列说法不正确的是A)链接操作将生成扩展名为.lnk的文件B)编辑过程将生成扩展名为.cpp或.c的文件C)编译过程将生成扩展名为.obj的文件C)C编程最终要生成扩展名为.exe的文件您的答案为:A 参考答案为:AC语言提供了丰富的结构化语句,直接支持____、_____和_______三种基本程序结构。
A)顺序、分支、过程B)顺序、分支、循环C)分支、过程、循环D)顺序、过程、循环您的答案为:B 参考答案为:B下列说法正确的是A)C语言版本众多,但这些版本大多不能兼容B)C语言只能在固定的操作系统上运行。
C)C语言不包含依赖硬件的输入/输出语句,其输入/输出功能语句需要手工来编写。
D)C语言允许对位、字节、地址这些计算机功能中的基本成分进行操作。
您的答案为:D 参考答案为:D当用户用编辑器将C语言程序录入到计算机后,就建立一个源文件,则A)源文件可以直接被计算机执行B)源文件需要编译后就可执行C)源文件经过编译链接后生成的可执行程序和源程序是独立的D)错误调试一般在执行过程进行您的答案为:C 参考答案为:C下列说法中正确的是()A.由于C源程序是高级语言程序,因此一定要在VC++软件中输入B.由于C源程序是字符组成,因此可以作为文本文件在任何文本编辑的软件中输入C.由于C程序是高级语言程序,因此输入后即可执行D.由于C程序是高级语言程序,因此它由命令组成您的答案为:B 参考答案为:B下列说法中错误的是()A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其它函数C. 任何非主函数可以调用其它任何非主函数D. 程序可以从任何非主函数开始执行您的答案为:D 参考答案为:D作业二 C基本数据类型及运算选择:21题下列不正确的C语言用户标识符是____。
A) int B) a_1_2 C) ab1exe D) _x您的答案为:A 参考答案为:A下列正确的C语言标识符是____。
A) #define B) _123 C) %d D) \n您的答案为:B 参考答案为:B下列四组字符串中都可以用作C语言程序标识符的一组是____ 。
A) print __123 Pxq str_lB) _3d one_half My->book CppC) oodb start$it line# powD) aBc 3pai His.age while您的答案为:A 参考答案为:A下面各选项组中,均是C语言关键字的组是____ 。
A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type您的答案为:B 参考答案为:B下列不属于C语言关键字的是____ 。
A) default B) register C) enum D) external您的答案为:D 参考答案为:D执行语句 printf("%x",-1);屏幕显示____。
A) -1 B) 1 C) -ffff D) ffffffff您的答案为:D 参考答案为:D已知 int a=2,b=1,c;执行语句c=b/a+2.5后, c的值____。
A) 2.5 B) 3 C) 3.0 D) 2您的答案为:D 参考答案为:D有关变量已经定义,以下合法的数值表达式是____。
A) a=1/b=2 B) ++(a+b) C) b=b/(a=6) D) c=int(a)+b 您的答案为:C 参考答案为:C将字符g赋给字符变量c,正确的表达式是____ 。
A) c=\147 B) c="\147" C) c='\147' D) c='0147'您的答案为:C 参考答案为:C下列转义字符中错误的一个是____。
A) '\000' B) '\014' C) '\x111' D) '\2'您的答案为:C 参考答案为:C将空格符赋给字符变量c,正确的赋值语句是____。
A) c='\0' B) c=NULL C) c=0 D) c=32您的答案为:D 参考答案为:D已知:char a='\70';则变量a中。
A)包含1个字符 B)包含2个字符C)包含3个字符 D)说明非法您的答案为:A 参考答案为:A字符串"\"EOF\n=-\61\""的长度是____。
A) 8 B) 9 C) 14 D) 非法字符串您的答案为:B 参考答案为:B字符串""的长度是____。
A) 0 B) 1 C) 2 D) 非法字符串您的答案为:A 参考答案为:A已知:char a;int b;float c;double d;执行语句"c=a+b+c+d;"后,变量c的数据类型是。
A) int B) char C) float D) double您的答案为:C 参考答案为:C逗号表达式"(a=3*5,a*4),a+15"的值是____。
A) 15 B) 60 C) 30 D) 不确定您的答案为:C 参考答案为:C如果int a=1,b=2,c=3,d=4;则条件表达式a<b?a:c<d?c:d的值是____。
A) 1 B) 2 C) 3 D) 4您的答案为:A 参考答案为:A已知int i=10;表达式"20-5<=i<=9"的值是____。
A) 0 B) 1 C) 19 D) 20您的答案为:B 参考答案为:B已知int x=1,y;执行下述语句后变量x的值是____。
y=++x>5&&++x<10;A) 1 B) 2 C) 3 D) 4您的答案为:B 参考答案为:B为判断字符变量c的值不是数字也不是字母时,应采用下述表达式____。
A) c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122B) !(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)C) c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122D) !(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)您的答案为:D 参考答案为:D已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是____。
A) 0 B) 1 C) 5 D) 6您的答案为:C 参考答案为:C作业三输入和输出选择:15题设a=3,b=4, 执行“printf(“a=%d,B=%d",a,b);”的输出是()A. a=3,b=4B. 3,4C. a=3,B=4D.a=3 B=4您的答案参考答案为:C为:C设a=1234,b=12,c=34 执行“printf(“|%3d%3d%-3d|\n”,a,b,c); ”的输出是()A.|12341234 |B.|1231234|C.|123412-34|D.|2341234|您的答案参考答案为:A为:A使用“scanf(“x=%f,y=%f”,&x,&y);”,要使x,y均为1.25,正确的输入是( )A. 1.25,1.25B. 1.25 1.25C. x=1.25,y=1.25D. x=1.25 y=1.25您的答案参考答案为:C为:C要使double x; long a; 获得数据,正确的输入语句是( )A. scanf(“%d,%f”,&a,&x);B. scanf(“%f,%ld”,&x,&a);C. scanf(“%d,%lf”,&a,&x);D. scanf(“%ld,%lf”,&a,&x);您的答案参考答案为:D为:D设有int a=255,b=8;则printf(“%x,%o\n”,a,b);的输出的是()A. 255,8B. ff,10C. 0xff,010D. 输出格式错参考答案为:B您的答案为:B设a、b为字符型变量,执行“scanf(“a=%c,b=%c”,&a,&b);”后使a为’A’,b为’B’,从键盘上的正确输入是()A. ‘A’’B’B. ‘A’,’B’C. A=A,B=BD. a=A,b=B参考答案为:D您的答案为:D语句printf(“%f%%”,1.0/3);的输出结果为:(注:%%的输出结果是一个%)A.0.333333B.0.333333%C.0.333333%%D.出错参考答案为:B您的答案为:B已有定义int x ;float y;且执行scanf("%3d%f",&x,&y);输入数据为12345 678<回车>,则x和y的值为:A.123 45.000000B.123 678.000000C.12345 678.000000 C.345 678.000000您的答案参考答案为:A为:A有如下的定义和输入语句:int a1,a2;char c1,c2;scanf("%d%d",&a1,&a2);scanf("%c%c",&c1,&c2);若要求a1,a2,c1,c2的值分别为10、20、A和B,则正确的数据输入方式为( )A. 1020ABB. 10 20<CR>AB<CR>C. 10 20 AB<CR>D. 10 20AB<CR>参考答案为:D您的答案为:D已有定义:float f1,f2;程序运行时输入数据为4.52 3.5 ,则输入语句正确的为( )A.scanf("%f,%f",&f1,&f2);B.scanf("%f%f",&f1,&f2);C.scanf("%f%f\n",&f1,&f2);D.scanf("%3f%f",&f1,&f2);参考答案为:B您的答案为:B下列数据中属于“字符串常量”的是()A.“a” B. {ABC}C. ’abc\0’D. ’a’参考答案为:A您的答案为:A在PC机中,‘\n’在内存占用的字节数是()A. 1B. 2C. 3D. 4参考答案为:A您的答案为:A在PC机中,“a\xff” 在内存占用的字节数是()A. 5B. 6C. 3D. 4参考答案为:C您的答案为:C在C语言中,合法的长整型常数是()A. 0LB. 4962710C. 0.054838743D. 2.1869e10参考答案为:A您的答案为:A下列数据中不属于“字符常量”的是()A. ‘\a’B. ‘\160’C. ‘\070’D. 070您的答案参考答案为:D为:D作业四 C程序控制结构选择:20题结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构您的答案为:D 参考答案为:D已知int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对您的答案为:B 参考答案为:B有如下程序: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);}该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2您的答案为:A 参考答案为:A有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k); }执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3您的答案为:C 参考答案为:C有如下程序main(){float x=2.0,y;if(x<0.0)y=0.0;else if(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);该程序的输出结果是A)0.000000B)0.250000C)0.500000D)1.000000您的答案为:C 参考答案为:C有如下程序:main(){int n=9;while(n>6){n--;printf("%d",n);}}该程序的输出结果是A)987B)876C)8765D)9876您的答案为:B 参考答案为:B在下列选项中,没有构成死循环的是A)int i=100;while(1){i=i%100+1;if(i>100)break;}B)for(;;);C)int k=10000;do{k++;}while(k>10000);D)int s=36;while(s)您的答案为:D 参考答案为:D有如下程序段#include "stdio.h"main(){int a=10,b=50,c=30;a=a>30?1:2;b=b>30?1:2;c=c>30?1:2;printf("%d,%d,%d\n",a,b,c); }则执行结果为A)2,1,2B)1,2,1C)1,1,2D)2,1,1您的答案为:A 参考答案为:A阅读如下程序段#include "stdio.h"main(){int a=45,b=40,c=50,d;d=a>30?b:c;switch(d){case 30 :printf("%d,",a);case 40 :printf("%d,",b);case 50 :printf("%d,",c);default :printf("#");}}则输出的结果是A)40,50,B)50,#C)40,#您的答案为:D 参考答案为:D若有定义int k=10;则下列程序的输出结果为do{printf("%d",k--);} while(!k);A)9B)10C)10987654321D)没有输出您的答案为:B 参考答案为:B阅读下列程序段,则程序的输出结果是#include "stdio.h"main(){int a=10,b=10,k;for(k=0;a>8;b=++k)printf("%d,%d,",a--,--b);printf("\n");}A)10,10,10,0,B)10,9,9,0,C)10,10,9,1,D)9,9,9,1,您的答案为:B 参考答案为:B下列程序的运行结果是#include "stdio.h"main(){int a,b,m;for(a=5;a>=1;a--){m=0;for(b=a;b<=5;b++)m=m+a*b;}printf("%d\n",m);}A)30B)15C)20D)10您的答案为:B 参考答案为:B若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是A)9B)8C)3D)2您的答案为:C 参考答案为:C下列程序的输出结果是#include "stdio.h"main(){int i=6;while(i--)printf("%d",--i);printf("\n");}A)531B)420C)654321D)死循环您的答案为:B 参考答案为:B阅读下列程序,则执行结果是#include "stdio.h"main(){int a=0,b=0,c=0,i;for(i=0;i<4;i++)switch(i){case 0:a=i++;case 1:b=i++;case 2:c=i++;case 3:i++;}printf("%d,%d,%d,%d\n",a,b,c,i); }A)0,1,3,4B)1,2,3,4C)0,1,2,5D)0,2,3,4您的答案为:C 参考答案为:C下面程序的运行结果是#include "stdio.h"main(){int j,i;for(j=50;j<=60;j++){for(i=2;i<j;i++)if(!(j%i))break;if(i==j)printf("%d",j);}}A)5359B)5953C)3595D)9535您的答案为:A 参考答案为:A已知char ch='C';则以下表达式的值是ch=(ch>='A′ && ch<='Z′)?(ch+32):ch; A)AB)aC)ZD)c您的答案为:D 参考答案为:D下列程序的运行结果是#include "stdio.h"main(){int x=-9,y=5,z=8;if(x<y)if(y<0)z=0;elsez+=1;printf("%d\n",z);}A)6B)7C)8D)9您的答案为:D 参考答案为:D现有定义int k=1;则执行语句while(++k<4);后,k的值为A)4B)5C)6D)8您的答案为:A 参考答案为:A以下程序的运行结果为#include "stdio.h"main(){int m,n;for(m=0,n=10;m<n;m+=3,n--);printf("%d,%d\n",m,n);}A)6,7B)7,6C)9,7D)7,9您的答案为:C 参考答案为:C作业五数组选择:21题1、若有以下数组说明,则数值最小和最大元素的下标分别是()。