1、计算机基础与程序设计作业题(二)(课程代码:02275)一、单项选择题1.若用八位二进制数表示一位整数,-4的二进制数是多少( A )A.11111100B.11111011C.10000100D.000001002.Turbo C2.0中,合法的整型常量是:( B )A.213 B.-32768 C.32768 D.E43.Turbo C2.0中。Long型数的取值范围是(B )A.-215 B.-231(231-1) C.0(216-1) D.0(232-1)4.设有int x=10,y,z;执行y=z=x;x=y=z;后变量x的值是( B )A.0B.1C.10D.205. 下面能正确表
2、述代数式的C语言表达式是( C )p210-exp()A. B.C.D.6.下列关于函数说法正确的是(D )A. 一个源程序文件只能由一个函数组成B. 一个C程序只能由一个源程序文件组成C. 一个C程序可有多个main()函数D. 除main()函数之外,同一个函数可被另一个函数调用多次7.下面关于函数的说法中,不正确的是 ( A )A. 若函数没有参数,则函数名后的圆括号可省略B. 函数中的形参类型必须说明C. 函数中的形参可以有,也可以没有D. 调用函数时,实参类型与形参类型应该一致8.若有定义int a10,*p;要使指针变量p指向数组a,下面写法正确的是( C )A. p=&a;B.*
3、p=a;C.p=a;D.p=*a;9若要定义一个长整型的变量a和一个指向变量a的指针变量q,下面正确的定义语句是( B )Along a,*q=a; Blong a,*q=&a;C long*q=&a,a;Dlong a,q=&a;10.下面关于结构体类型的定义正确的是( B )A.strcuttreeB.strcuttreeintbarnch;intbarnch,charname20;charname20,char*relation;char*relation,;C.strcuttreeD.strcuttreeintbarnchintbarnch;charname20charname20;c
4、har*relation;char*relation;11.下面位运算符中,为单目运算符的是( A )A.B.&C.|D.12.在格式:fgets(str,n,p);中,下面说法不正确的是( D )A.str是字符指针B.一次可以读n个字符C.str是字符数组名D.一次可以读n-1个字符13下面列出的位运算符中,表示按位与操作的是 ( C )A B! C D14.下面各个位运算符优先级从左到右依次升高的是 ( C )A | & B| & C| & D | 15.设有说明:int u=1,v=3;表达式:ua?a-:-bD.a-a/b*bE.a-a%b*b3下面循环语句中,没有无限循环错误的循环
5、语句有 (BD )Afor(;); Bfor(i=1;i1&v|u B.u&v&wC.u|v&wD.w&v|uname,Wuhan);Cps=&myboat; ps-weight=2700;Dstrcpy(myboatname,Wine); ps=&myboat;Eps=&myboat,strcpy(myboatname,Shanghai); ps-weight=5512;三、简答题1.简述C语言中标识符的命名规则;C语言中哪些名是用标识符来标识的只能有字母,下划线组成,但是不能是数字开头,不能用关键字作为用户标识符标识符用来标识变量名、符号常量名、函数名、数组名、文件名、类名、对象名等2.
6、设有下面说明:struct flowerchar *part;char *color;mum;char *part_of_flower3=“花”,”茎”,”叶”;char *seven_color7=“赤”,”橙”,”黄”,”绿”,”青”,”蓝”,”紫”;试写出将mum的成员part定义为”花”、成员color定义为”黄”的C语句。mum.part=part_of_flower0mum.part=seven_color23.简述声明语句:char *p4;的含义定义了一个指针数组,数组共有四个元素,每个元素是一个字符型指针。四、阅读程序,写出程序执行结果1.阅读下面程序,写出执行结果main(
7、)int x=35,y=-2,a,b;a=x/10; b=y%a;printf(“%d,%dn”,a,b);printf(“%d,%dn”,+x,y+); 执行结果是:3,-236,-22.阅读下面程序,当程序运行后从键盘上输入一个*号,写出执行结果#include”stdio.h”main()char ch;ch=getchar(); switch(ch)case +:intf(“+n”);break;case *:printf(“*n”);default:printf(“n”);case -:printf(“-”);break;case /:printf(“end”);执行结果:*-3写出
8、下面程序的运行结果void main(void)int x;for(x=1;x10;x+=2) /x=x+2printf(dtdn,x,x*x);执行结果:1,13,95,257,499,814写出下面程序的运行结果void main(void)int x;for(x=1;x=5;x+)printf(d,dn,x,fun(x);int fun(int x) static int fac=1; fac*=x; return fac;执行结果:1,12,23,64,245,1205.阅读下面程序main()char *p10=”ling”,”yi”,”er”,”san”,”si”,”wu”,”li
9、u”,”qi”,”ba”,”jiu”;int x,a,b;scanf(“%d”,&x);if(x=100)printf(“cuo le”);elsea=x/10; b=x%10; if(a=0)printf(“%s”,pb);elseif(b=0)printf(“%s shi”,pa);elseprintf(“%s shi %s”,pa,pb);问:(1)当键盘输入120时,结果是什么?cuo le(2)当键盘输入3时,结果是什么?san(3)当键盘输入7时,结果是什么?qi(4)当键盘输入23时,结果是什么?er shi san五、编程题1. 有若干个学生(不超过50人)的某门课程的成绩放在
10、文本文件c:cj.dat中,现要求统计出90-100分,80-89分,70-79分,60-69分,0-59分的人数各有多少人。#include main()int num5=0;int score;int i;File *fp;fp=fopen(c:cj.dat,rb);for(i=0;i50;i+)fread(&score,sizeof(int),1,fp);switch(score/10)case 10:case 9:num0+;break;case 8:num1+;break;case 7:num2+;break;case 6:num3+;break;default:num4+break
11、for(i=0;i5;i+)switch(i)case 0:printf(90-100分有%d人n,num0;break;case 1:printf(80-89分有%d人n,num1;break;case 2:printf(70-879分有%d人n,num2;break;case 3:printf(60-69分6有%d人n,num3;break;default:printf(0-59分6有%d人n,num4;break;fclose(fp);2从键盘输入10个整数并存放到一维数组中,计算下标为奇数的元素的累加和并输出运行结果#include main()int x10,i,sum=0;for(i=0;i10;i+)scanf(%d,xi);if(i % 2 !=0)sum+=xi;printf(奇数下标总和为%d,sum);1