当前位置:文档之家› C语言练习题 之2

C语言练习题 之2

C语言练习题 之2
C语言练习题 之2

C语言练习题之二

1.在一个C语言源程序中,必不可少的是___________ 。

2.下列叙述中正确的是__________ 。

A.main函数必须出现在其他函数之前

B.main函数中至少必须有一条语句

C.C程序总是从main函数的第一条语句开始执行

D.C程序总是在执行完main函数的最后一条语句后结束

3.以下标识符中不能用做变量名或自定义函数名的是_______。

A.main

B._123

C._float

D.sizeof

4.下列表示中,不可作为常数的是_______ 。A.020 B.1UL C. '0x41' D.0xfe

5.设有声明“int value='5';”,则执行下列选项的赋值语句后,value的值不等于5的是___。

A. value=value-'0';

B. value=value-0x30;

C. value=value-49;

D. value=value-'\060';

6.设有定义和声明如下:

#define d 2

int x=5;float y=3.83;char c='d';

以下表达式中有语法错误的是____。

A.x++

B.y++

C.c++

D.d++

7.若有声明和初始化“int x=32767;”,则x+1的值为___________。

8.若有声明和初始化“long x=32767;”,则x+1的值为___________。

9.已有声明“int a=3,b=3,c=2;”,以下选项中值为0的表达式是________ 。

A. !a && !b && c

B.!a ||!b ||c

C.a==b &&b>=c

D.a>=b&& b>c

10.若有声明“int x=4,y=3;”,则表达式“x

A.2

B.3

C.4

D.5

11.设有声明“int a=3,b=4;float x=4.5,y=3.5;”,则表达式“(float)(a+b)/2+(int)x%(int)y”的值是___ 。

12.若有声明“int i=7;float x=3.1416;double y=3;”,表达式i+'a'*x+i/y值的类型是_________ 型。

13.设有声明“float a=l.23456;int i;”,欲将a中的数值保留小数点后两位, 第三位进行四舍五入运算,能实现该功能的表达式是_________。

A. i=a*100+0.5,a=i/100.0

B.a=(a*100+0.5)/l00.0

C. a=((int)a*i00+0.5)/100.0

D.a=(a/100+0.5)/100.0

14.若有声明“int a=15,b=20,c=25,e;”,则执行语句“e=a>b?--c:++c;”后变量e的值是_____。

15.以下C________ 。

A. =

B.&(位与)

C.==

D.&&

16.数学公式在程序中正确的表示形式为______ 。

A. sqrt(a)/2*b

B. sqrt(a)/2/b

C. sqrt(a)/2b

D.sqrt a/(2*b)

17.与数学式C语言的表达式是______________ 。

18.若有声明“float f=123.45678;”,则执行语句“printf("%.3f",f);”后,输出结果是_____ 。

A. 1.23e+02

B.123.457

C.123.456780

D.1.234e+02

19.已知程序中有声明“int a; long b;”,若需要接收从键盘输入的电话号码字符串(010)64782656(其中010为区号,64782656是电话号码),并将其中的区号、电话号码分别存储到变量a、b中,则实现该功能的输入语句为“scanf("______",&a,&b);”。

20.以下关于C语言输入输出函数的叙述中错误的是_________ 。

A.printf函数输出字符串时与puts函数一样,以…\0?结束

B.scanf函数可以输入空格

C.gets函数可以输入空格

D.getchar函数没有参数,scanf和gets 都有参数

21.若int类型数据占2个字节,则以下语句的输出为________ 。

int k=-1;

printf(“%d,%u\n”,k,k);

22.关键字case和default只能在__________ 语句中出现。

23.以下程序运行时输出结果的最后一行是__________。

void main()

{ int a=1,b=1,i;

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

{ a=a+b; printf("%d/%d,",b,a);

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

printf("\n");

}

24.以下程序运行后,输出结果的第一行为______________,第二行为_________。

void main()

{ int w=0,i;

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

switch(w++)

{ case 0: case 1:

case 2:

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

}

25.以下程序运行时输出结果是______________。

void main()

{ int i,sum=0;

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

{ switch(i)

{ case 0:

case 1:sum++;

case 3:sum++; break;

case 4:sum--; }

}

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

}

26.若有数组A和B的声明“static char A[]="ABCDEF",B[]={'A','B','C','D','E','F'};”,则数组A 和数组B的长度分别是_________ 。A. 7,6 B.6,7 C. 6,6 D.7,7

27.设有声明“int p[10]={1,2},i=0;”,以下语句中与“p[i]=p[i+1],i++;”等价的是______。

A.p[i]=p[i++];

B.p[++i]=p[i];

C.p[++i]=p[i+1];

D.i++,p[i-1]=p[i];

28.执行以下程序段后,number的值是________。

char str[]="Hello!"; int number;

number=sizeof(str);

29.若有说明“int a [][4]={1,2,3,4,5,6,7,8,9};”,则数组a第一维的大小是______。

30.以下程序运行时,输出结果的第一行为________,第三行为______,第五行为______。

#define N 8

void main()

{ int i,j,pa[N]={1};

printf("%5d\n",pa[0]);

for(i=1;i

{ pa[i]=1;

for(j=i-1;j>0;j--) pa[j]=pa[j]+pa[j-1];

for(j=0;j<=i;j++) printf("%5d",pa[j]);

printf("\n");}

}

31.以下程序运行时输出结果的第一行是______________,第三行是_________。

void main()

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

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

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

if(i

else a[i][j]=i-j+1;

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

{ for(j=0;j<3;j++) printf("%4d",a[i][j]);

printf("\n"); }

}

32.以下程序执行时,输出结果的第一行是_____,第二行是______,第三行是______ 。

#define N 20

main()

{ int i,j,k,n,arr[N][N];

k=1; i=0; n=3;

while (i

{ for(j=i;j

for(j=n-i-2; j>=i; j--) arr[n-i-1][j]= k++;

for(j=n-i-2; j>=i;j--) arr[j][i]= k++;

for(j=i+1;j<=n-i-2;j++) arr[i][j]= k++;

i++; }

if(n%2) arr[i][i]=k;

for(i=0;i

{ for(j=0;j

printf("\n"); }

}

33.以下所列对结构类型变量tdl的声明中,错误的是_____ 。

A.typedef struct aa

B.#define AA struct aa

C.struct

D.struct

{ int n; float m;}AA; AA{ int n;float m; }tdl; { int n;float m; }aa; { int n; float m; }tdl;

AA tdl; struct aa tdl;

34.若有结构类型定义“typedef struct test{int x,y[2];}TEST;”,则以下声明中正确的是__。

A.struct test x;

B.struct x ;

C.test x;

D.struct TEST x;

35.以下程序运行后的输出结果的第一行是______________,第二行是_________。

struct num

{ int x,y;

} st[]={{1,10},{2,20},{3,30},{4,40},{-1,-1}},s1[2],s2[2];

main()

{ int i=0,j=0,k;

for(k=0;st[k].x!=-1;k++)

{ if(st[k].x%2) s1[i++]=st[k];

else s2[j++]=st[k]; }

printf("%d\n%d\n",s1[0].y,s2[0].y); }

36.以下程序运行时,输出结果的第_________,第二行为________,第三行为_________。

#include

struct node {int x; int next;};

void main()

{ struct node chain[5]={{1,-1},{5,-1},{3,-1},{2,-1},{4,-1}};

int k,j,max,maxcode,head,sign,last;

for(k=0;k<5;k++) printf("%2d",chain[k].x);

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

{ sign=0;

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

if(chain[j].next==-1)

{ if(sign==0) {max=chain[j].x;maxcode=j;sign=1;}

else if(chain[j].x>max) {max=chain[j].x;maxcode=j;}

}

if(k==0) {head=last=maxcode;}

else chain[last].next=maxcode;

last=maxcode;chain[maxcode].next=-2;

}

printf("\n%2d\n",chain[head].x);

j=head;

while(j!=-2) { printf("%2d",chain[j].x);j=chain[j].next; }

}

38.已知有函数定义“int fun(){return (3,4);}”,则调用fun后的函数返回值是_____ 。

39.在以下程序的main函数中,语句“fun(x,10);”内的实参x表示数组x的_________。

void fun(int a[10],int n)

{ int i;

for(i=0;i

main()

{ int x[10]={0}; fun(x,10); }

40.以下程序运行时输出结果是____________。

#include void func(int b) void main()

{ int a=10,b=20;

func(b);

{ int a;

a=b;b=10; }

41.以下程序运行时输出结果为_________ 。

#include main() { printf("%d\n",f(21,35)); } 42.以下程序运行时输出到屏幕的结果是______ 。

#include

int fun(int *x,int n) { if(n==0) return x[0]; else return x[0]+fun(x+1,n-1); }

37.以下函数定义中正确的是______________ 。

A.double fun(double x,double y){}

B.double fun(double x;double y){}

C.double fun(double x,double y);{}

D.double fun(double x,y){}

43.声明局部变量时若缺省存储类别,该变量的存储类别是_______。

44.在声明局部变量时,不能使用的存储类别标识符是____________。

45.以下程序运行时输出结果是_______ 。

#include main() { int s,i,sum(int); for(i=1; i<=5; i++) s=sum(i); printf("%d\n",s); }

46.以下程序运行后输出结果为_______________。

#include "stdio.h"

int m(int a) { static int s; return(++s)+(--a); } 47.以下程序运行时输出结果的第一行是______________,第二行是_________。

#include

int f1() { static int i=0,f=1; return f*=++i; } void main()

{ printf("%d\n",f1()+f1());

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

}

48.若有声明“int a[ ]={1,2,3,4},*p,i;”,则以下程序段中不能输出13的是_______。

A.for(i=0;i<4;i+=2) printf("%d",a[i]);

B.for(p=0;p<4;p+=2) printf("%d",a[p]);

void main()

{ int a[]={1,2,3,4,5,6,7};

printf("%d\n",fun(a,2)); }

int f2()

{ int i=0,f=1;

return f*=++i;

}

void main()

{ int a=2;

printf("%d",m(m(a))); }

sum(int k)

{ static int x=0;

return x+=k;

}

int f(int a,int b)

{ if(a==b) return a;

else

if(a>b) return f(a-b,b);

else return f(a,b-a); }

C.for(p=a;p

D.for(p=a,i=0;i<4;i+=2) printf("%d",p[i]);

49.对应main函数中的fun函数调用语句,以下四个fun函数首部中错误的是_______。

main()

{ int a[50], n; fun(n, &a[9]); }

A.void fun(int m,int x[])

B.void fun(int s,int h[41])

C.void fun(int p,int *s)

D.void fun(int n,int a)

50.若有声明“char a[5]={'A','B','C','D','E'},*p=a,i;”,则以下语句中不能正确输出a数组全部元素值的是

A. for(i=0;i<5;i++) printf("%c",a[i]);

B. for(i=0;i<5;i++) printf("%c",*(a+i));

C. for(i=0;i<5;i++) printf("%c",*p++);

D. for(i=0;i<5;i++) printf("%c",*a++);

51.设已有声明“char x[]={1,2,3,4,5,6},*p=&x[2];”,则值为3的表达式是________ 。

A. *++p

B. *(p++)

C. ++*p

D.(*++p)++

52.若有声明“int a[3][4],*p=a[0],(*q)[4]=a;”,则下列叙述中错误的是__________。

A.a[2][3]与q[2][3]等价

B.a[2][3]与p[2][3]等价

C.a[2][3]与*(p+11)等价

D.a[2][3]与p=p+11,*p等价

53.已知有程序段“char str[][10]={"Aoyun","Beijing"}, *p=&str[0][0];

printf("%s\n",p+10);” ,则执行printf语句后输出为___________ 。

A.Beijing

B.Aoyun

C.ing

D.ng

54.以下语句或语句组中,能正确进行字符串赋值的是_________ 。

A.char *sp; *sp="right!";

B.char s[10]; s="right!";

C.char s[10]; *s="right!";

D.char *sp="right!";

55.以下程序运行时输出结果中第一行是___________ ,第二行是___________ 。

#include

int fun(char *a,char *b)

{ int m=0,n=0;

while(*(a+m)!='\0')m++;

while(b[n])

{ *(a+m)=b[n];m++;n++; }

*(a+m)='\0';

return m; }

56.以下程序运行后的输出结果为_____________。

#include

#include

void print(char *p)

{ static int len,offset;

offset=strlen(p)-len;

if(offset==0) return;

else printf("%c",*(p+offset-1));

len++;

print(p);

}

57.有以下说明和定义语句:

struct student

{ int age; char num[8]; }; void main()

{ char s1[20]="yes",s2[5]="no";

printf("%d\n",fun(s1,s2));

puts(s1);

}

void main()

{

char str[]="dog";

print(str);

}

struct student stu[3]={{20,"0401"},{21,"0402"},{19,"0403"}};

struct student *p=stu;

以下选项中引用结构体变量成员的表达式错误的是____________ 。

A.(p++)->num

B.p->num

C.(*p).num

D.stu[3].age

58.以下程序运行时,输出结果的第一行是_______ ,第二行是_________ 。

#include int t(int x,int y,int *cp,int *dp) { x=x*x; y=y*y; *cp=x+y;

*dp=x-y; }

59.若已有定义“enum TP {A,B,C};”,则执行语句“prinf("%d \n",A+1);”后输出结果是_______ 。

60.以下程序运行后输出结果为_____________。

#include "stdio.h"

enum days{ mon=1,tue,wed,thu,fri,sat,sun} today=tue;

void main()

{ printf("%d\n",(today+2)%7); }

61.C 语言有效的预处理命令总是以_____________开头。

62.若有宏定义“#define max(a,b) (a>b?a:b)”,则表达式“max(2,max(3,1))”的值是______ 。

63.以下程序运行时输出结果是___________。

#define EVEN(x) x%2==0?1:0

main()

{ if (EVEN(5+1)) printf("Even");

else printf("Odd"); }

64.以下程序运行后的输出结果是______________。

#define Count(n) ++n

main()

{ int x=-3,n=8;

while(Count(x)) n--;

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

65.若有声明“double x=10,y=5;”,则计算y x 的库函数调用形式是________。

66.若需要对一个数据文件abc.txt 中的数据做加密处理并且限定只能做一次打开文件操作,则在“fp=fopen("abc.txt",模式字符串);”中,模式字符串应当是____。

A."w+"

B."r+"

C."a+"

D."r"

67.下面的程序执行后abc.dat 文件的内容是___________ 。

#include

main()

{ FILE *fp;

char *s1="China",*s2="Beijing";

fp=fopen("d:\\abc.dat","wb+");

fwrite(s2,7,1,fp);

rewind(fp);

fwrite(s1,5,1,fp);

fclose(fp); }

main() { int a=4,b=3,c=5,d=6; t(a,b,&c,&d); printf("%d,%d\n%d,%d",a,b,c,d); }

68.以下程序运行时输出结果中第一行是___________,第二行是___________。

#include

#include

void fun(char str[][20],int n)

{ int i,j,k;

char s[20];

for(i=0;i

{ k=i;

for(j=i+1;j

if(strcmp(str[j],str[k])<0) k=j;

strcpy(s,str[i]);

strcpy(str[i],str[k]);

strcpy(str[k],s); }

}

main()

{ char str[6][20]={"PASCAL","BASIC","FORTRAN","C","COBOL","Smalltalk" };

int i;

fun(str,6);

for(i=0;i<6;i++) printf("%s\n",str[i]); }

69.以下程序运行时,输出结果的第一行是______ ,第二行是_____ ,第三行是______。

#include

#include struct node { char info[5]; struct node *link; }; main() { struct node *create(char *); void print(struct node *); struct node *head=NULL; char c[]="the teacher"; head=create(c); print(head); } void print(struct node *head)

{ struct node *p=head;

while(p!=NULL)

{ puts(p->info); p=p->link; }

}

70.以下程序运行时输出结果中第一行是 ______,第二行是_______ ,第三行是_____。 typedef struct{int x;int y;}S; void fun(S pp[],int n) { int i,j,k; S t; struct node *create(char *s) { int k; struct node *h,*p; h=NULL; while(*s) { k=0; p=(struct node *)malloc(sizeof(struct node)); while (k<4 && *s) p->info[k++]=*s++; p->info[k]='\0'; p->link=h; h=p; } return h; } void main() { S a[5]={{3,2},{3,1},{1,2},{2,4},{2,3}}; int i,n=5; fun(a,n);

for(i=0;i

{ k=i;

for(j=i+1;j

if((pp[j].x

k=j;

if(k!=i)

{t=pp[i];pp[i]=pp[k];pp[k]=t;}

}

}

71.以下程序的功能是:根据公式和精度计算π的近似值。

11212312341****** (23353573579)

π=+++++ #include #include double PI(double eps) { double s=0,t=1.0;int n; for(n=1;___________ ;n++) {s+=t; t=t*__________ ; }

return 2.0*s; }

72.以下程序的功能是:首先对字符串s1和s2分别按字典序排序,然后将s1和s2有序合并为字符串s3并同时删除s3中重复出现的字符,最后输出字符串s3。例如,当字符串sl 和s2分别是“good”。和“morning”时,程序应输出”dgimnor”。

#include

#include void merge(char *x,char *y,char *z) { char t; int i=0,j=0,k=-1; while( _____________) { if(x[i]

void sort(char s[]) { int i,j,k,n; char t; n=strlen(s); for(i=0; is[j]) k=j; if (k!=i ) { t=s[k]; s[k]=s[i]; s[i]=t; } } } main() { char s1[100]="good",s2[100]="morning",s3 [200]; sort(s1); sort(s2); merge(s1,s2,s3); puts(s3); } void main() { double e=1e-6; printf("%f",_________________); } /* e 是计算精度要求 */ /*这里表示允许运算结果值在小数点后第6位有误差*/

C语言试卷2及答案

扬州大学试题纸 系课程 C语言程序设计(A)卷2002—2003学年第2学期 班级_________学号________姓名__________得分___________ 一、选择题(每题分,共30分): 1、已知:char a; int b; float c; double d; 则执行语句:c=a+b+c+d; 后,变量c的类型为。 A. char B. int C. float D. double 2、已有定义int x; float y; 且执行scanf(“%2d%f”,&x,&y);语句时, 从第一列开始输入数据12345 67<回车>,则y的值是。 A. 无定值 B. 345.00000 C. D. 3、设有以下程序段 int x=0; s=0; while (!x!=0) s+=++x; printf(“%d”,s); 则。 A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 4、若i为整型变量,则以下循环执行次数是。 for(i=2; i==0;) printf(“%d”, i--); A. 无限次 B. 2次 C. 1次次 5、假设char ch=’a’, *p=&c h; ,以下语句中,有语法错误的是 . A. (*p)++; B. ch+=—‘a’+’A’; C. toupper(ch)=ch; D. ch++; 6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”}; 则language[2]的值是。 A. 一个字符 B. 一个地址 C. 一个字符串 D. 一个不定值 7、C语言程序中,当调用函数时。 A. 实参和虚参可以共用存储单元 B. 实参和虚参各占一个独立的存储单元 C. 可以由用户指定是否共用存储单元 D. 由计算机系统自动确定是否共用存储单元 8、在程序中要使用语句:printf(“%s\n”, STRING); 输出提示信息:“OK! ”(包括双引号),则应使用宏定义语句。 A. #define STRING “OK!” B. #define STRING “”OK!”” C. #define STRING \”OK!\” D.以上三个答案都是错误的 9、数组和链表都可以用于存储一组数据,以下说法不正确的是_____________。 A. 数组占用连续的一块存储区域,链表可能占用若干不连续的存储区域 B. 数组和链表所占用的存储区域均不能在程序运行期间动态分配 C. 数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取 D. 数组的长度是固定的,链表的长度是不固定的。 10、已知语句FIL E *fp; char ch= ‘c’;fp=fopen(“”,”w”);如果需要将ch的值保存到一个磁盘文件中,

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构 一、单项选择题 1、以下不是C语言的特点的是________。 A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化 2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。 A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行 3、以下不是二进制代码文件是________。 A)标准库文件 B)目标文件C)源程序文件 D)可执行文件 4、下面个选项组中,均属于C语言关键字的一组是________。 A)auto,enum,include B)switch,typedef,continue C)signed,union,scanf D)if,struct,type 5、下面四组字符串中,都可以用作C语言标识符的是________。 A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY 6、以下不属于流程控制语句的是_________。 A)表达式语句 B)选择语句 C)循环语句 D)转移语句 7、下面描述中,不正确的是________。 A)C语言的函数体由一系列语句和注释组成。 B)注释内容不能单独写在一行上。 C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。 D)scanf和printf是标准库函数而不是输入和输出语句。 8、下面描述中,正确的是________。 A)主函数的花括号必须有,而子函数中的花括号是可有可无的。 B)一个C程序行只能写一个语句。 C)主函数是程序启动时的唯一入口。 D)函数体包含了函数说明部分。 二、填空题 1、一个完整的C程序至少要有一个________函数。(主函数) 2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。(编译系统) 3、C语言是以________为基本单位、整个程序由________组成。(函数函数) 4、常用的标准库函数有数学函数、字符函数和字符串函数、动态分配函数、随机函数和________函数等几个大类。(输入输出) 5、标准库函数存放在________文件中。(函数库) 6、目标程序文件的扩展名是________。(.obj) 7、程序连接过程是将目标程序、________或其它目标程序连接装配成可执行文件。(库函数) 8、因为源程序是________类型文件,所以用具有文本编辑功能的任何编辑软件程序完成编辑。(文本)

c语言复习题(有答案)●

思考题 不仅要会做这些题,更重要的是要掌握其相关知识点一、一般填空题 1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【1】. 1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【1】. 1-3、fopen函数的原形在头文件【1】中. 1-4、getchar函数的原形在头文件【1】中. 1-5、sqrt函数的原形在头文件【1】中. 1-6、如果函数不要求带回值,可用【1】来定义函数返回值为空. 答案:w或w+;a或a+;stdio.h ; stdio.h ; math.h ;void . 2-1、字符串“\1011234\\at”的长度(字符数)是【1】. 2-2、字符串“abc\103\\bcd”的长度(字符数)是【1】. 2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【1】. 2-4、“a“在内存中占【1】个字节. 2-5、‘a’在内存中占【1】个字节. 2-6、“\71“在内存中占【1】个字节. 2-7、一维数组下标的最小值是【1】;数组char a[]=“china” ;在内存应占【1】个字节。 答案:8; 8; 9; 2;1;2 ;0;6. 3-1、设x=(5>1)+2, x的植为【1】. 3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【1】. 3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【1】. 答案:3;171;194; 4-1、假设所有变量都为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是【1】. 4-2、if(!a)中的表达式!a等价于【1】. 4_3、已知a=1,b=2,c=3,执行if(a>b>c) b=a;else b=c;a=4;b=8;后,b的值是【1】. 答案:8;a==0;8; 5-1、若所用变量都已定义,下列程序段的执行结果是【1】. for(i=1;i<=5;i++);printf(“OK\n”); 5-2、执行语句char s[3]=”ab”,*p;p=s;后,*(p+2)的值是【1】. 5-3、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; ,则*--p的值是【1】. 5-4、下列程序的输出结果是【1】,main(){int a=011;printf(“%d\n”,++a);} 答案:OK;’\0’;1;10 6-1、若宏定义为:#define y(x) 2+x, 则表达式a=3*y(3)的值为【1】. 6-2、若宏定义为:#define y(x) 2+x, 则表达式a=4*y(2)的值为【1】. 6-3、若宏定义为:#define y(x) 2/x, 则表达式a=4+3*y(3)的值为【1】. 答案:9;10;6 . 二、单项选择题 1-1、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。 A:文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B:文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C:文件打开时,原有文件内容被删除,只可作写操作 D:以上各种说法皆不正确 1-2、若执行fopen函数时发生错误,则函数的返回值是()。

C语言模拟试卷2(带答案)

,. 单选题: 1、执行下面的程序段后,变量k中的值为 s[0]=k; k=s[1]*10; A. 不定值 B. 33 C. 30 D. 10 答案: A 2、设有以下定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1));后,z的值为_______.2*(3+ (4*5+1) A. 出错 B. 42 C. 48 D. 54 答案: C 3、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是____ A. 1 B. 2 C. 2.0 D. 2.5 答案: c 4、请选出以下语句的输出结果____ printf("%d\n",strlen("\t\ 065\xff\n")) A. 5 B. 4 C. 8 D. 输出项不合法,无正常输出 答案: B 5、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C 程序中的 else总是与____组成配对关系。 A. 其上面距它最近的,并且没有其他else与其配对的if相配对 B. 在同一行上的if C. 缩排位置相同的if D. 在其之前未配对的if 答案: A 6、若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段: printf("%d",(X,Y)); 上面程序片段的输出结果是 A. 200 B. 100 C. 100 200 D. 输出格式符不够,输出不确定的值 答案: A 7、请读程序片段(字符串内没有空格字符): printf("%d\n", strlen("ATS\n012\1\\")); 上面程序片段的输出结果是 A. 11 B. 9 C. 10 D. 8 答案: B 8、设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); 则______ A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 答案: B 9、阅读下列程序: main( ) { int n[3],i,j,k; for(i=0;i〈3;i++) n[i]=0; k=2; for (i=0;i < k;i++) i=0: n[0]=1,n[1]=2 i=1: =3 =3 for (j=0;j〈2;j++) n[j]=n[i]+1; printf("%d\n",n[1]); } 下述程序运行后输出结果是 A. 2 B. 1 C. 0 D. 3 答案: D 10、输入一个华氏温度,要求输出摄氏温度。计算公式为: c=5/9(F-32),以下程序正确的是() A. main() { float c,F; scanf("%f,%f",&c,&F); c=5/9*(F-32); printf("摄氏温度是:%f\n",c); }

C语言基础练习题(含答案)

C语言基础练习题(含答案)

第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D.-_ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3C.For D.2a define _123 -abc DO WORD IF Case sizeof 5.下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed

B .一组机器语言指令 C .将C 源程序编译成目标程序 D .由制造厂家提供的一套应用软件 14.以下选项中,合法的用户标识符是( )。 A .long B ._2abc C .3dmax D .A.dat 15.以下选项中,合法的实型常数是( )。 A .5E2.0 B .E-3 C .2E0 D .1.3E 16.已知大写字母A 的ASCII 码值是65, 小写字母a 的ASCII 码是97,则用八进制表示的字符常量’\101’是( )。 A .字符A B .字符a C .字符c D .非法的 常量 17.以下选项中, 合法转义字符的选项是( )。 A .’\\’ B .’\018’ C .’xab ’ D .’\abc ’ 18.以下选项中,正确的字符常量是( )。 A .”F ” B .’\\’’ C .’W ’ D .’’ 19.以下选项中可作为C 语言合法整数的是 A .10110 B B .0386 C .0Xffa D .x2a2 20.下列变量定义中合法的是 A .short _a=1-.le-1; B .double b=1+5e2.5; C .long do=0xfdaL; D .float 2_and=1-e-3; 21.与数学式子1 29 x x n 对应的C 语言表达式是( )。 A .9*x^n/(2*x-1) B .9*x**n/(2*x-1) C .9*pow(x,n)*(1/(2*x-1)) D .9*pow(n,x)/(2*x-1) 22.若有代数式cd ab 3,则不正确的C 语言表达式是( )。

C语言PTA平台习题与答案

第二章作业 1 ①.本题要求编写程序,输出一个短句“Welcome to You!” #include int main() { printf("Welcome to You!\n"); return 0; } ②.本题要求编写程序,计算华氏温度100°F对应的摄氏温度。计算公式:C=5×(F?32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。 fahr = 100, celsius = 计算所得摄氏温度的整数值 #include int main() { int fahr = 100; int celsius = 5*(fahr-32)/9; printf("fahr = 100,celsius = %d\n",celsius); return 0; } 第二章作业2 ①求整数均值本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。 在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位 #include int main() { int a,b,c,d,Sum; double Average; scanf("%d %d %d %d",&a,&b,&c,&d); Sum = a + b + c + d; Average = (a + b + c + d)/4.0; printf("Sum = %d,Average = %.1f\n",Sum,Average); return 0; } ②整数四则运算本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内 输入在一行中给出2个正整数A和B。 在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 #include int main() { int a; int b; scanf("%d %d",&a,&b); printf("%d + %d = %d\n",a,b,a+b); printf("%d - %d = %d\n",a,b,a-b); printf("%d * %d = %d\n",a,b,a*b);

C语言练习题(带答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

C语言详解(第五版)第二章程序设计项目答案

C语言详解(第五版)程序设计项目答案第二章 1.编写一个程序,以每英里0.35的费率计算一个售货员的里程偿还金。程序中要求与用户进行如下方式的交互。 #include #include int main(void) {float mile_1,mile_2,miles,consume,payment; printf("MILEAGE REIMBURSEMENT CALCULATOR\n"); printf("Enter begainning odometer reading>\n"); scanf("%f",&mile_1); printf("Enter endding odometer reading>\n"); scanf("%f",&mile_2); printf("Enter consume per mile>\n"); scanf("%f",&consume); miles=mile_2-mile_1; payment=miles*consume; printf("You traveled%f miles.At%f per mile,your reimbursement is%f",miles,consume,payment); system("pause"); return(0); } 2.编写一个程序,用于辅助设计水力发电大坝。提示用户输入大坝高度,以及水流量。如果水由重力所做的功有90%转化为电能,测算会有多少M瓦的功率。 #include #include int main(void) {double density,weight,gravitational_acceleration, efficiency,height,water_flow_rate,work,electricity_power; printf("Please type in the density of water>"); scanf("%lf",&density); printf("Please type in the gravitational_acceleration>"); scanf("%lf",&gravitational_acceleration); printf("Please type in the height of the water>"); scanf("%lf",&height); printf("Please type in the efficiency of the transformation\nfrom water to electricity>"); scanf("%lf",&efficiency); printf("Please type in the water_flow_rate>"); scanf("%lf",&water_flow_rate); weight=density*water_flow_rate; work=weight*height*gravitational_acceleration; electricity_power=work*efficiency/1000000; printf("The electric energy production is%fW",electricity_power); system("pause"); return0; }

C语言试题与答案

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

c语言试题及答案 (2)

C语言部分 一、选择题(每小题2分,共10分) (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。 1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D, E ) A、*(a+1)为元素6的地址 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。 B、*(a[1]+1)的值为2 为8,故B不正确 C、**(a+1)+2的值为8 这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确; D、a[0]与a相同 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10 它是指第二行的第三个元素,为10,正确 2、对函数的正确使用方法描述( A,C,D )。 A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组 B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递 3、对静态变量的正确描述( A,B,D,E ) A、静态局部变量在静态存储区内分配单元() B、静态外部变量可以赋初值,也可以不赋初值 C、静态外部变量的作用与外部变量相同 D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E、静态局部变量只赋一次初值 4、下列描述正确的是( A ,C)。 A、由main 函数及其参数argc和* argv[]可以实现命令行方式 B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针 C、字符数组并不要求它的最后一个字符是‘\0’ //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。 D、‘A’和“A”都是字符串常量 E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7 5、在缓冲文件系统中用于读写的函数有( A,B,D ) A、putchar () B、fread() C、rewind () D、purw() E、fseek() 二、程序阅读,并给出运行结果(共10分,每题5分)。 (1)main() { unsigned a,b,x int n; a=0x763 输出结果:

C语言习题及解答-2-1

C语言概述 一.选择题 1.下列选项中,合法的C语言关键字是 A) VAR B) cher C) integer D) default 2.请选出可用作C语言用户标识符的一组标识符____ A) Void define WORD B) a3_b3 _123 IF C) For -abc Case D) 2a Do sizeof 3.C语言提供的合法的数据类型关键字是____ A) Double B) short C) integer D) Char 4.在下列字符中,不可用作C语言标识符的是 A) water B) price C) a>b D) a12 5.一下叙述正确的是 A) C语言比其他高级高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点 6.在一个C语言程序中 A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置 7.下列符号不属于C语言保留字的是 A) if B) then C) static D) for 8.下列说法正确的是 A) 主函数名main是由程序设计人员按照“标识符”的命名规则来选取的 B) 分号和回车符都可以作为语句的结束符号 C) 在程序清单的任何地方都可以插入一个或多个空格符号 D) 程序的执行总是从主函数main()开始的 参考答案 1.D 2.B 3.B 4.C 5.C 6.B 7.B 8.D 数据类型与表达式 一.选择题 1. 下列字符序列中,不可用作C语言标识符的是()。 A)abc123 B)no.1 C)_123_ D)_ok 2. 正确的C语言标识符是()。 A)_buy_2 B)2_buy C)?_buy D)buy?

C语言思考题

1、机器语言:机器语言及其指令是计算机能够直接识别的执行的一组二进制代码。一条机器指令通常由操作码和操作数两部分构成。 2、汇编指令:是机器语言的符号化表示MOV 3、汇编语言:由汇编指令、汇编伪指令及汇编语言的语法规则组成。 4、汇编语言源程序:用汇编语言编写的程序 5、汇编程序:把汇编语言源程序翻译成目标程序的加工程序MASM 6、二、十、十六进制转换(掌握<256)练习1:117=(1110101)B练习2:1000 1011 B=(139)D练习3:1011 1000 0000 0101 B=(B805)H 7、机器数:是指计算机中的数据,可以分为无符号数和有符号数字长为N位时无符号数表示范围0≤N≤2N-1 当N=8时0≤N≤255 8、原码(8位):最高位为符号位(正数用0表示,负数用1表示),其他位为数值位 如X=+45=+0010 1101B [X]原=0010 1101B 如X=-45=-0010 1101B [X]原=1010 1101B 9、补码(8位):正数的补码与原码相同,负数的补码是将符号位取1,数值位逐位取反,未位加1。如X=+45=+0010 1101B [X]补=0010 1101B 如X=-45=-0010 1101B [X]补=1101 0011B 10、补码运算:是指对一个补码表示的数按位求反后再在末尾加1,可以得到与此数相应的符号相反的数的补码。例、已知[117]补=0111 0101B,[-117]补=1000 1011B,对[117]补作补码运算。解:因为[117]补=0111 0101B,按位求反后得1000 1010B,末尾加1得1000 1011B=[-117]补。[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补 12、BCD码:BCD码用4位二进制数表示1位十进制数。常用8421BCD码例:写出十进制314所对应的BCD码 13、8086/8088CPU:16位微处理器和16位数据总线,20位地址总线(寻址空间为1MB)。8088微处理器内部16位数据,外部8位数据,也称准16位机。8086/8088CPU的组成(功能方面):运算器、控制器、寄存器组 14、寄存器是CPU内部临时存放数据的部件,速度比内存快。(1)数据寄存器4个16位寄存器AX,BX,CX,DX,每个寄存器还可以拆成2个8位寄存器使用。 AX累加器:算术运算寄存器,用于存放操作数或运算结果。I/O指令中通过AX与外部交换数据。在乘除运算中指定存放被乘数与被除数,系统功能调用号。AX累加器可以分为AH、AL分别使用。 BX基址寄存器:可作为通用寄存器使用。在计算内存地址是,常作基址寄存器,作为通用寄存器还可以分为BH、BL分别使用。 CX数据寄存器:可作为通用寄存器使用。在循环和串操作指令中作隐含计数器。作为通用寄存器还可以分为CH、CL分别使用。 DX数据寄存器:可作为通用寄存器使用。在I/O操作中,DX用来存放I/O端品地址。在乘除法运算中与AX组合一起存放双字型数据。作为通用寄存器还可以分为DH、DL 分别使用。 (2)变址寄存器(2 个16位):SI 源变址寄存器.DI 目的变址寄存器 BP基址寄存器:用于存放栈中的操作数的偏移地址。SP堆栈指针寄存器:用来指示栈顶的当前位置(偏移地址)。 IP 指令指针寄存器(程序计数器):用于存放下一条指令所在偏移地址。与CS配合,用来确定程序中下一条指令的物理地址。 15、PSW程序状态字寄存器(标志寄存器):8088微处理器使用16位中的9位设置了9个标志。标志位SF、OF、CF、ZF的含义0010 1001B+1110 1000B=1 0001 0001B CF=1 OF=0 SF=0 ZF=0 16、段地址寄存器:段表示一块内存空间(大小可变),最大为64K字节,最小为16字

二级C语言试题(含答案)

二级C语言试题 一、判断题(2×8=16分) 1、printf()函数总是从新行的起始位置开始打印。( F ) 2、所有的变量在使用前都必须予以申明。(F) 3、在申明变量时必须给出变量的类型。(T) 4、C语言认为变量number和NuMbEr是相同的。( F) 5、打印三行输出的C语言程序必须用三条printf语句。(F) 6、求余运算符%只能用于两个整数操作数。(T) 7、switch选择结构中必须有default子句。(F) 8、如果x>y或ay&&a

c语言练习题 2

1停车场收费问题 一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5 + (3.6-3)*2 = 6.2 元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。(注意输出结果小数点后保留两位) 输入 #include int main() { double m,x; printf("输入停车时间x:"); scanf("%lf",&x); if(x<=24) { if(x<3.0) {m=5.0; printf("%lf\n",m);} else if(x>3.0) { m=5.0+2.0*(x-3.0); if(m<=40) printf("%lf\n",m);} } else printf("输出停车费用40元\n"); return 0; 2.#include int main() { double x,m; printf("输入停车时间(x):"); scanf("%lf",&x); if(x<=24) { if(x<=3.0) printf("停车费用5元\n"); if(x>3) m=5.0+2.0*(x-3.0);

if(m<=40) printf("%6.2f\n",m);} else printf("停车费用40元\n"); } } 2 计算细菌数量 一种细菌的繁殖速度是每天成倍增长。例如:第一天有10个,第二天就 变成20个,第三天变成40个,第四天变成80个,……。现在给出第一 天的日期和细菌数目,要你写程序求出到某一天的时候,细菌的数目。 3 计算邮资计算邮资: 用户输入:邮件的重量,以及是否加快 计算规则:重量在1克以内(包括1克), 基本费0.8元。超过1克的部分,按照0.5元/克的比例加收超重费。 如果用户选择加快,多收2元。#include using namespace std; int main() {double x,sum; char exp; while(cin>>x>>exp) { if(x<=1&&exp=='n') sum=0.8; if(x<=1&&exp=='y') sum=2.8; if(x>1&&exp=='n') sum=0.8+(x-1)*0.5; if(x>1&&exp=='y') sum=0.8+(x-1)*0.5+2; cout< using namespace std; int main()

C语言第二章习题带答案

1.C语言中的简单数据类型包括( B )。 A.整型、实型、逻辑型B.整型、实型、字符型 C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的short类型的常数是( A )。 A.32768 B.0 C.037 D.0Xaf 3.下列常数中不能作为C的常量的是( D )。 A.0x45 B.2.5e-2 C.3e2 D.0582 4.short类型的数据长度为2个字节,则unsigned short类型数据的取值范围是( B )。 A.0至255 B.0~65535 C.-32768~32767 D.-256~255 5.下面4个选项中,均是合法转义字符的选项是( A )。 A.'\'','\\','\n' B.'\','\017','\' C.'\018','\f','xab' D.'\\0,'101','x1f 6.在C语言中,数字029是一个( D )。 A.八进制数B.十六进制数 C.十进制数D.非法数 7.下列可以正确表示字符型常数的是( B )。 A."a" B.'\t' C."\n" D.297 8.以下( C )是错误的转义字符。 A.'\\' B.'\'' C.'\81' D.'\0' 9.C语言中short类型的变量a的值为-8,则a在内存中的存储形式是( A )。 A.1111 1111 1111 1000 B.100000000000 1000 C.000000000000 1000 D.1111 1111 1111 0111 10.将字符g赋给字符变量c,正确的表达式是( C )。 A.c="g" B.c=101 C.c='\147' D.c='0147' 11.字符串"\\\22a,0\n"的长度是( C )。 A.8 B.7 C.6 D.5 12.为求出s=10!的值,则变量s的类型应当为( C )。 A.short B.unsigned short C.long D.以上三种类型均可13.已知:unsigned short x=65535;,则执行以下语句输出是( D )。 printf("%d\n", x); A.65535 B.1 C.无定值D.-1 14.下面4个选项中,均是合法整型常量的选项是( A )。 A.160,-0xffff,011 B.-0xcdf,01a,0xe C.-01,986,012,0668 D.-0x48a,2e5,0x 15.下面4个选项中,均是不合法的整型常量的选项是( D )。 A.--0f1,-0xffff,0011 B.-0Xcdf,01a,0xe C.-018,999,5e2 D.-0x48eg,-068,03f 16.下面4个选项中,均是合法浮点数的选项是( B )。 A.+1e+1,5e-9.4,03e2 B.-.60,12e-4,-8e5 C.123e,1.2e-.4,+2e-1 D.-e3,.8e-4,5.e-0

相关主题
文本预览
相关文档 最新文档