1、江南大学现代远程教育上半年全阶段计算机语言C江南大学现代远程教育2013年上半年第一阶段测试卷一、选择题(每题2分,共30分)1C语言程序由( )组成。A. 子程序 B.过程 C.函数 D.主程序与子程序2当a的值为5,b的值为4时,逻辑表达式a8的值为( )。A. true B. false C.非0整数值 D.整数值03. 下面四个选项中,均是不合法的用户标识符的选项是( )。A. _A B. HAR C. b_a D. 1_23 P1 c3 INT do C_2 a2 er1 int4在c语言中,错误的语句是( )。A. a=b=c; B. ; C. break D. b=3*5,a*=
2、4;5设a、b和c都是int型变量,且a=3,b=4,c=5,则以下表达式中值为0的是 ( )。Aa&b B. a=b C. a|b+c&b-c D. !(a5) printf(“%dn”,m); else printf(“%dn”,m-);A.4 B.5 C.6 D.78. 设a为整型变量,初值为12,执行完语句a+=a- =a*=a后,a的值是( )。A.-552 B.-120 C.-264 D. 09. 以下所列字符常量中,不合法的是( )。 A/Oxff B65 C$ Dxla10以下不致造成死循环的语句是( )。Afor(y=0,x=1;x+y;x=i+) i=x;Bfor(;x+=
3、i);C. while(x=8) x-;Dfor(i=10,sum=0;sum0&y5) printf(“y=%d,x=%d”,y,x);7.下程序的功能是用二分法求方程2x3-4x2+3x+6=0的根,并要求绝对值误差不超过0.001。#include”math.h”main( ) float ab,a= 10.0,b=10.0,fab,fa,fb; fa=2*a*a*a+ 4*a*a+3*a+ 6; fb=2*b*b*b +4*b*b+3*b+ 6; do ab= (a+b)/2 ; fab=ab*(2*ab+ 4)*ab+3)+ 6; if( fa*fab )0) a=ab; fa=fa
4、b; else b=ab; fb=fab; while(fabs(fab)= 1e-3 );printf(“%dn”,ab);8.以下程序打印所有符合下列条件的3位正整数:是某一个数的平方数,其中有两位数字相同。如100、121等。main( ) int a,b,c,n,k; for(k=10;k+) n= k*k ; if(n999) break ; a=n/l00; b= n%100/10 ; c=n%10; if(!(a-b)*(b-c)*(c-a)printf(n%d,%d,n,k); 9. 以下程序的功能是 输出1000以内被17整除的数,每行输出4个数 #include main(
5、)int I,j=0; for(I=16;I=1000;I+) if(I%17!=0)continue; j+; printf(j=4)?j=0,%dn:%dt,I); 10. #include “stdio.h” main() char c;scanf(“%c”,&c); switch(c-2) case 0: case 1: putchar(c+4); case 2: putchar(c+4);break; case 3: putchar(c+3); default: putchar(c+2);break; printf(“n”); 当分别输入1,2,3,4,5时,输出为 36677887
6、 。三、编程题(共25分)1编程, 打印以下图形(10分) A B*B C*C D*D E*E D*D C*C B*B AMain() int I,j,m=65;或int I,J;char m=A; for(I=1;I=5;I+) for(j=1;j=5-I;j+) Printf(“”); for(j=1;j=2*I-1;j+) if(j=1/j=2*I-1) printf(“%c”,m+I-1); else printf(“*”); printf(”n”); for(I=1;I=4;I+); for(j=1;j=I;j+); Printf(“”); for(j=1;j=le-4);print
7、f(“sinx=%fn”;sinx); 江南大学现代远程教育2013年上半年第二阶段测试卷一、选择题(每题2分,共30分)1变量的有效范围与其定义位置有关,( ),其作用域在整个源程序文件中都有效。A.在第一个函数中定义的变量B.在定义第一个函数之前所定义的变量C.在主函数中定义的变量D.在函数中定义的静态变量2.C语言标准库函数“strcat(strcpy(STR1,STR2),STR3)”的功能是( )。A.将串STR1复制到串STR2中后再连接至串STR3之后B.将串STR1连接至STR2之后再复制至串STR3之后C.将串STR2复制到串STR1串后再将串STR3连接到串STR1 之后D
8、.将串STR2连接到串STR1之后再将串STR1复制到串STR3串 3. 以下正确的说法是( )。A.定义函数时,形参的类型说明可以放在函数体内B.return后边的值不能为表达式C.如果函数值的类型与返回值类型不一致,以函数值类型为准D.如果形参与实参类型不一致,以实参类型为准 4以下函数调用中有( )个实参。expd(a1,a2,a3),(a4,a5),a7,a8)A.4个 B.3个 C.8个 D.5个5对于C语言的函数,下列叙述中正确的是( )。A.函数的定义不能嵌套,但函数调用可以嵌套B.函数的定义可以嵌套,但函数调用不能嵌套C.函数的定义和调用都不能嵌套D.函数的定义和调用都可以嵌套
9、6编译预处理包括( )。A.文件包含、宏定义和条件编译 B.构造工程文件C.语句注释 D.编辑源程序 7以下叙述中不正确的是( )。 A.一个变量的作用域完全取决于变量说明语句的位置 B.外部变量可以在函数以外的任何位置定义C.内部变量的生存期只限于本次函数调用,无法将内部变量的值保存至函数下一次调用 D.用static说明个外部变量是为了限制其它编译单位的引用8以下有关宏替换的叙述不正确的是( )。A.宏替换不占用运行时间 B.宏名无类型C.宏替换只是字符替换 D.宏名必须用大写字母表示9假设有宏定义: #define NUM 15#define DNUM NUM+NUM则表达式DNUM/2
10、+NUM*2的值为( )。A.45 B.67 C.52 D.90 10若有宏定义与变量说明如下: #define X 5#define Y X+1#define Z Y*X/2int a; a=y;则执行以下printf语句后输出的结果是( )。Printf(%d %dn,Z,-a);A.7 5 B.12 6 C.12 5 D.7 611若有变量说明:char s,s120;执行语句:s=student;s1=s;正确的叙述是:( )。A.二个语句都不正确B.s所指向的字符串和s1的值都是studentC.第一个语句正确,而第二个语句不正确D.第二个语句正确,而第一个语句不正确12C程序中若函
11、数类型未加显式说明,则函数的隐含类型为( )类型。A. void B. int C. char D. double 13以下程序的运行结果是( )。main() int a=2,i; for(i=0;i=0 ) _ mid=(top+bot)/2 ;if(bmid=c)flag=1; break ;else if(bmidc) _ bot=mid+1 ;else _ top=mid-1 ;if(_flag ) printf(“%c字符在已知字符串中n”,c);else printf(“%c字符不在已知字符串中n”,c);6. 下面程序的功能是求1至1000之间满足“除3余0,且有一位是5”的数
12、,例如15,45,51且一行输出5个数,变量a,b,c分别存储百位,十位和个位。#includemain() int I=1,j=0,a,b,c; do a= I/100; b=I%100/10 ; c= I%10 ; if(I%3=0&(a=5|b=5|c=5) ) printf(“%4d”,I); j=j+1; if(j%5=0 ) printf(“n”); I+;while(I1000);7.执行以下程序后,输出的是 22 (所有编译系统传递函数参数的顺序为自右向左)。程序func(int a,int b) return a+b; main() int x=6,y=7,z; z=func
13、(func(x+,y+), func(-x, -y); printf(%d,z); 三、编程题(25分)1以下程序实现从键盘上输入年、月、日,计算该日是该年的第几天。(15分) 2画出排序算法的N-S结构流程图。(10分)江南大学现代远程教育2013年上半年第三阶段测试卷一、选择题(每题2分,共30分)1对于基类型相同的指针变量,不能进行( )运算。A.+ B.- C.= D.=2C语言中文件的存取方式是( )。A.顺序存取 B.随机存取 C.a与b均可 D.a与b均不可3. 函数AAA(s,t) char *s,*t; while(*t+); t-; while(*t+=*s+); 的功能是
14、( )。A.求串的长度B.比较两个串的大小C.将串s复制到串t中D.将串s连接到串t中4在16位IBM-PC机上使用C语言,如定义下列联合类型变量: union data int i; char ch; float f; a,b,c;则联合变量,a,b,c名占用内存的字节数为( )。A.1 B.2 C.4 D.75以下执行后显示的结果是( )。#include FILE *fp;main() int s=0,i,a4=15,25,33,58;fp=fopen(data.txt,wb);for(i=0;i4;i+)putw(ai,fp);fclose(fp);fp=fopen(data.txt,
15、rb);for(i=1;istd D.(*p).std11设有“char s=”Program“,*p=s;”,则以下叙述中正确的是( )。A数组s的内容与指针变量p中内容相同B数组s的长度与strlen(p)的值相等Cp5的值等于s5的值Dsizeof(s)等于sizefof(*p)12设有说明: union data int i;float f; struct int x;char y; s; double d; a; 在16位微机环境下,int类型的整数占用两个字节,则变量a在内存中所占字节数为 ( )。A. 8 B. 17 C. 9 D. 1513C语言联合类型在任何给定时刻( )。A
16、. 所有成员一直驻留在结构中B. 只能有一个成员驻留在结构中C. 部分成员驻留在结构中D. 没有成员驻留在结构中14以下枚举类型的定义中正确的是( )。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”;15. 现有C语言程序main() static int a=1,2,3,4,5,6 int *p; int i; p=a; *(p+3)+=2; printf(n1=%d,n2=%dn:,*p,*(p
17、+3);其输出是_。A.n1=1;n2=5 B.n1=2,n2=6C.n1=1,n2=7 D.n1=1,n2=6二、填空题(每空3分,共45分)1输入一个不包含空格的字符串,判断输入的字符串是否为回文,回文是相对中心左右对称的字符串,如:“abcba”和“abddba”是回文,而字符串“abcAa”不是回文。#include”stdio.h”int f(char *p) char *p1, *p2; p1=p2=p; while( *p2+); p2= P2-2 ; while( P1!=0 ) if( *P1!=*P2 ) return(0); p1+; p2 -; return 1;mai
18、n()char s200; printf(“输入一个字符串:”); scanf “%S” ,S ); if( f(s) )printf(“字符串:%s是回文!n”,s); else printf(“字符串:%s不是回文!n”,s);2. 下面函数swap_p的功能是完成交换两个数的操作。请 按指定的顺序在题后的相应序号后填上适当的内容,使之成为完整正确的函数。swap_p(s,t)int *s , *t ; int term; term= *s ;*s= *t ;*t= term ;3.程序输出的结果是 n1=t n2=u a=tesustring,b=tesusfg 。#include ma
19、in()static char a50=test;char b40,*p;p=a;*(p+3)+=1;strcpy(b,abcdefg);strcat(a,string);strncpy(b,a,5);printf(n1=%c,n2=%ct,*p,*(p+3);printf(a=%s,b=%sn,a,b);4.程序:main()union EXAMPLE struct int x,y;in; int a,b; e;e.a=1;e.b=2;e.in.x=e.a*e.b;e.in.y=e.a+e.b;printf(“%d%dn”,e.in.x,e.in.y);该程序输出的结果是 48 。5.以下程序的运行结果是 baCBAcd #includevoid bubble(char *str
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1