c语言期未考试B.docx
- 文档编号:7880212
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:15
- 大小:36.04KB
c语言期未考试B.docx
《c语言期未考试B.docx》由会员分享,可在线阅读,更多相关《c语言期未考试B.docx(15页珍藏版)》请在冰豆网上搜索。
c语言期未考试B
考生须知:
1.姓名必须写在装订线左侧,写在其它位置试卷一律作废。
请先检查试卷是否缺页,如缺页请向监考教师声明。
如不检查不声明,后果由考生本人负责。
2.考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。
西安培华学院2007—2008学年第二学期
《C语言程序设计》试卷(B)
使用班级:
7b811、12、21命题教师:
荣瓴主任签字:
题号
一
二
三
四
五
六
七
八
总分人
得分
总分
得分
评卷人
一、
一、选择题(1—30题每题1分,本题共30分)
下列各题A)、B)、C)、D)四选项中,只有一个选项是正确的。
(1)在计算机上可以直接运行的程序是
A)高级语言B)汇编语言C)机器语言程序D)C语言程序
(2)正确的C程序自定义的标识符是
A)num(10)B)file_bakC)continueD)class+2
(3)设inta=8,b=7,c=6,x=1;执行语句
if(a>6)if(b>7)if(c>8)x=2;elsex=3;
A)0B)1C)2D)3
(4)以下叙述中正确的是
A)输入项可以是一个实型常量,如:
scanf(“%f”,3.5);
B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:
scanf(“a=%d,b=%d”);
C)当输入一个实型数据时,必须指明变量地址,例如:
、
scanf(“%f”,&f);
D)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:
scanf(“%4.2f”,&f);
(5)设intx[]={1,2,3,4},y,
则执行语句:
y=x[3]
后变量y的值为D
A)1B)2C)3D)4
(6)以下程序的输出结果是
main()
{inta=12,b=12;
printf(“%d%d\n”,--a,++b);
A)1010B)1212C)1110D)1113
(7)函数调用时,下列说法中不正确的是
A)若用值传递方式,则形式参数不予分配内存
B)实际参数和形式参数可以同名
C)主调函数和被调函数可以不在同一个文件中
C)函数间传递数据可以使用全局变量
(8)执行以下程序段时
x=-1;
do{x=x*x;}while(!
x);
A)循环体将执行一次
B)循环体将执行两次
C)循环体将执行无限次
D)系统将提示有语法错误
(9)执行下列程序
intfun(intx1,intx2)
{intx;
x1>x2?
(x=3):
(x=4);
return(x+x1);
}
main()
{printf(“%d\n”,fun(7,8));}
后输出结果是
A)9B)10C)11D)12
(10)如下程序的运行结果是
main()
{inta=-1,b=1,k;
if((++a<0)&&!
(b--<=0))printf(“%d,%d\n”,a,b);
elseprintf(“%d,%d\n”,b,a);
}
A)–1,1B)0,1C)1,0D)0,0
(11)有如下定义:
inta=1,b=2,c=3,d=4,m=2,n=2;
则执行表达式:
(m=a>b)&&(n=c>d)后,n的值为
A)1B)2C)3D)0
(12)若有说明:
inta[10];则对a数组元素的正确引用是D
A)a[10]B)a[3.5]C)a(5)D)a[10-10]
(13)若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为
A)floatB)intC)charD)double
(14)表达关系X≤Y≤Z的C语言表达式为
A)(X<=Y)&&(Y<=Z)B)(X<=Y)AND(Y<=Z)
C)(X<=Y<=Z)D)(X<=Y)&(Y<=Z)
(15)a=1,b=2,c=3,d=4,则表达式:
a
a:
c a: d的结果为 A)4B)3C)2D)1 (16)设x=8,y,z;执行y=z=x++;x=y==z后,变量x的值是 A)0B)1C)8D)9 (17)可作为C语言赋值语句的是 A)x=3,y=5B)a=b=6 C)i--;D)y=int(x); (18)C语言中,最低类型的数据在运算之前,应先转换为: A)charB)shortC)intD)long (19)给出以下定义: charx[]=“abcdefg”; chary[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’}; 则正确的叙述为 A)数组X和数组Y等价B)数组x和数组Y的长度相同 C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度 (20)以下叙述中不正确的是 A)在不同的函数中可以使用相同名字的变量 B)函数中的形式参数是局部变量 C)在一个函数内定义的变量只在本函数范围内有效 D)在一个函数内的复合语句中定义的变量在本函数范围内有效 (21)设x和y均为int型变量,则以下语句: x+=y;y=x-y;x-=y;的功能是 A)把x和y按从大到小排列 B)把x和y按从小到大排列 C)无确定结果 D)交换x和y中的值 (22)在执行以下程序时,如果从键盘上输入: ABCdef《回车》,则输出为 #include main() {charch; while((ch=getchar())! =’\n’) {if(ch>=’A’&&ch<=’Z’)ch+=32; elseif(ch>=’a’&&ch<=’z’)ch-=32; printf(“%c”,ch);} printf(“\n”);} A)ABCdefB)abcDEFC)abcD)DEF (23)下面能正确进行字符串赋值操作的语句是 A)chars[5]={“ABCDE”};B)chars[5]={‘A’,’B’,’C’,’D’,’E’}; C)chars[];s=”ABCDEF”D)chars[10];scanf(“%s”,s); (24)在下列选项中,没有构成死循环的程序段是: A)inti=100;B)for(;;); while (1) {i=i%100+1; if(i>100)break; } C)intk=1000;D)ints=36; do{++k;}while(k>=1000);while(s);--s; (25)运行下面的程序,如果从键盘上输入: ab<回车>c<回车>def<回车> 则输出结果为 #include #defineN6 main() {charc[N]; inti=0; for(;i for(i=0;i } A)aB)aC)abD)abcdef bbc ccd dd e f (26)以下程序运行后,;输出结果是 intd=1; fun(intp) {intd=5; d+=p++; printf(“%d”,d); } main() {inta=3; fun(a); d+=a++; printf(“%d\n”,d);} A)84B)99C)95D)44 (27)设有数组定义: chararray[]=“China”;则数组array所占的空间为 A)4个字节B)5个字节C)6个字节D)7个字节 (28)以下程序的输出结果是 main() {inti,j,x=0; for(i=0;i<2;i++) {x++; for(j=0;j<3;j++) {if(j%2)continue; x++; } x++; } printf(“x=%d\n”,x); } A)x=4B)x=8C)x=6D)x=12 (29)运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为 main() {intm,n; printf(“Enterm,n: ”);scanf(“%d%d”,&m,&n); while(m! =n) {while(m>n)m-=n; while(n>m)n-=m; } printf(“m=%d\n”,m); } A)m=3B)m=2C)m=1D)m=0 (30)以下程序运行后,如果从键盘上输入 book<回车> book<空格><回车> 则输出结果是 #include main() {chara1[80],a2[80],s1=a1,s2=a2; gets(s1);gets(s2); if(! strcmp(s1,s2)printf(“*”); elseprintf(“#”); printf(“%d\n”,strlen(strcat(s1,s2))); } A)*8B)#9C)#6D)*9 二、填空题(每题2分,共30分) (1)若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是。 chara[10],b; scanf(“a=%sb=%c”,a,&b); {inta=3; fun(a); d+=a++; printf(“%d\n”,d);} A)84B)99C)95D)44 (2)设有数组定义: chararray[]=“China”;则数组array所占的空间为 A)4个字节B)5个字节C)6个字节D)7个字节 (3)以下程序的输出结果是 main() {inti,j,x=0; for(i=0;i<2;i++) {x++; for(j=0;j<3;j++) {if(j%2)continue; x++; } x++; } printf(“x=%d\n”,x); } A)x=4B)x=8C)x=6D)x=12 (4)运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为 main() {intm,n; printf(“Enterm,n: ”);scanf(“%d%d”,&m,&n); while(m! =n) {while(m>n)m-=n; while(n>m)n-=m; } printf(“m=%d\n”,m); } A)m=3B)m=2C)m=1D)m=0 (5)以下程序运行后,如果从键盘上输入 book<回车> book<空格><回车> 则输出结果是 #include main() {chara1[80],a2[80],s1=a1,s2=a2; gets(s1);gets(s2); if(! strcmp(s1,s2)printf(“*”); elseprintf(“#”); printf(“%d\n”,strlen(strcat(s1,s2))); } A)*8B)#9C)#6D)*9 (6)若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是_____________。 chara[10],b; scanf(“a=%sb=%c”,a,&b); (7)C语言规定,可执行程序的开始执行点是________________ (8)以下程序的输出是______________ main() {inta[10]={19,23,44,17,37,28,49,36}; printf(“%d\n”,a[3]); } (9)以下程序的运行结果是________________ main() {increment(); increment(); increment(); } increment(); {intx=0; x+=1; printf(“%d”,x); } (10)下列程序和功能是____________________,运行结果是____________ longfib(intg) {switch(g) {cose0: return0; case1: case2: return1: } return(fib(g-1)+fib(g-2)); } main() {longk; k=fib(7); printf(“k=%d”,k); } (11)下面程序的运行结果是________________ main() {inta[10]={1,2,2,3,4,3,4,5,1,5}; intn=0,I,j,c,k; for(i=0;i<10-n;i++) {c=a[j]==c} for(j=i+1;j<10-n;j++) if(a[j]==c) {for(k=j;k,10-n;k++) a[k]=a[k+1]; n++;}} for(i=0;i<(10-n);i++) printf(“%d”,a[i]); printf(“/n”); } (12)设i,j,k均为int型变量,则执行完下面的for循环后,k的值为____________________。 for(i=0,j=10;i<=j;i++,j--)k=i+j; (13)将一字符串中的小写英文字母改成大写。 main() {inti=0;charstr[81]; scanf(“%s”,str); while(__________________) {if(_______________)str[i]-=’a’-‘A’; } printf(“%s\n”,str); } (14)语句: x++;、++x;x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与举例的相同)____________________。 (15)下面程序的输出是__________________ main() {inti=3;j=2; char*a=“DCBA”; printf(“%c%c\n”,a[i],a[j]); 三、读程序题(每小题5分,共20分) 1、读程序写功能 #include“stdio.h” main() {chars[80]; inti,j; gets(s); for(i=j=0;s[i]! =’\0’;i++) if(s[i]! =’c’)s[j++]=s[i]; s[j]=’\0’; puts(s); 2.main() {inti,j,x=0; for(i=0;i<2;i++) {x++; for(j=0;j<3;j++) {if(j%2)continue; x++;} x++;} printf(“x=%d\n”,x);} 运行结果为: 3.下面程序的运行结果是____________________ #include main() {inti; for(i=1;i<=5;i++) switch(i%2) {case0: i++;printf(“#”);break; case1: i+=2;printf(“*”); default: printf(“\n”); } } 4.以下程序的运行结果是 #include intk=1; main() {intI=4; fun(i); printf(“ (1)%d,%d|n”,I,k); fun(intm) {m+=k;k+=m; {chark=’B’; printf(“ (2)%d\n”,k-‘A’); } printf(“(3)%d,%d\n”,m,k); } 四.综合题(每小题10分,共30分) 1、编程根据公式e=1+ …求e的近似值,精度要求为10-6。 2、从键盘输入两个字符串a和b,要求不用库函数sttrcat把串b的前五个字符连接到串a中;如果b的长度小于5,则把b的所元素都连接到a中。 试编程 3、编程实现两个字符串的合并,程序要求用两个一维字符数组存储两个字符串,将s1连接到s1串的尾部使s1串成为两个串的合并串,假设合并后的中长小于等于80。 得分 评卷人 二、 考生须知: 1.姓名必须写在装订线左侧,写在其它位置试卷一律作废。 请先检查试卷是否缺页,如缺页请向监考教师声明。 如不检查不声明,后果由考生本人负责。 2.考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 考试