收藏 分销(赏)

武汉理工大学继续教育《C语言程序设计(本)》在线作业答案.doc

上传人:人****来 文档编号:4656745 上传时间:2024-10-08 格式:DOC 页数:11 大小:23.05KB 下载积分:8 金币
下载 相关 举报
武汉理工大学继续教育《C语言程序设计(本)》在线作业答案.doc_第1页
第1页 / 共11页
武汉理工大学继续教育《C语言程序设计(本)》在线作业答案.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
一、单选(共计100分,每题2.5分) 1、若已定义 int a=11; 执行以下语句后的输出结果是( )。 printf("a=%d,a=%o,a=%x\n",a,a,a) ; A. a=11, a=11, a=b B. a=11, a=13, a=b C. a=11, a=13, a=c D. a=11, a=12, a=13 2、 A. B. C. D. 3、以下程序运行后,文件test.txt的内容是( )。 #include <stdio.h> main() { FILE *fp; char str[][10]={"first","second"}; fp = fopen("test.txt", "w"); if(fp!=NULL) fprintf(fp,"%s",str[0]); fclose(fp); fp = fopen("test.txt", "w"); if(fp!=NULL) fprintf(fp,"%s",str[1]); fclose(fp); } A. first B. second C. first second D. second first 4、若有以下定义: struct node { int data; struct node *next; } struct node *head,*p; 已建立如下图所示的链表: p ↓ ┌──┬──┐ ┌──┬──┐ ┌──┬──┐ head → │data│next┼→│data│next┼→... →│data│NULL│ └──┴──┘ └──┴──┘ └──┴──┘ 能删除指针p所指向结点的程序段是( )。 A. p = p->next; head->next=p->next; free(p); B. free(p); p = p->next; head->next=p->next; C. head->next = p->next; free(p); D. free(p); head->next = p->next; 5、若有定义:int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a; , 则( )表达式是错误的。 A. a[2] B. p++ C. p[2] D. a++ 6、下面叙述错误的是( )。 A. C源程序可由一个或多个函数组成 B. C. D. 注释说明部分只能位于C源程序的最前面 7、 ( )为合法的常量。 A. B. C. D. 8、以下程序的运行结果是( )。 void main() {int s = 0, i = 0; while(i< 8) { i++; if(i%2==0) continue; s+=i; } printf("%d\n",s); } A. 36 B. 7 C. 16 D. 12 9、以下程序段的运行结果是( )。 main() { int i=4,j; j=i; pic(i+2*j-2,'*'); putchar('\n'); for(j-=2;j>=0;j--) { pic(3-j, ' '); pic(i+2*j, '*'); putchar('\n'); } } pic(int len,char c) { int k; for(k=1;k<=len;k++) putchar(c);} A. B. C. D. 10、设有以下程序段: int a=1, b=10, c=1, x; x=a&&b||++c; printf(″%d, %d\n″,x,c); 执行后输出的结果是(    ) A. 0,0 B. 0,1 C. 1,0 D. 1,1 11、以下条件语句中(其中s1和s2分别表示C语言的语句),( )与其他三条语句不等价。 A. if(a) s1; else s2; B. if(a == 0) s2; else s1; C. if(a != 0) s1; else s2; D. if(a == 0) s1; else s2; 12、若已定义 int arr[10]; 则不能正确引用arr数组元素的是( )。 A. arr[0] B. arr[1] C. arr[10-1] D. arr[7+3] 13、若有定义:int *p,k=4; p=&k;以下均代表地址的是( )。 A. k, p B. &k, &p C. &k, p D. k, *p 14、以下程序的运行结果是( )。 main() { int a[3]={1,2,3}; int *num[3]; int **p,i; for(i=0;i<3;i++) num[i]=&a[i]; p=num; printf("%d",**p);} A. 1 B. 3 C. &a[0] D. num 15、以下程序中的循环执行了( )次。 #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() { int i,n=0; for(i=0;i<NUM;i++) n++; printf("%d\n",n); } A. 5 B. 6 C. 8 D. 9 16、若有定义:int x,a,b; 语句x=(a=2,b=3,a+b); 运行后,x、a、b的值依次为( )。 A. 2 3 5 B. 3 2 5 C. 5 2 3 D. 5 3 2 17、以下程序运行后,a的值是( )。 main() { int a,b; for(a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) { b+=3; continue; } b-=5; } } A. 101 B. 100 C. 8 D. 7 18、下面叙述正确的是( )。 A. 宏展开不占用运行时间,只占用编译时间 B. 预处理命令也是C语句,必须以分号结束 C. 一个源程序只能有一个预编译处理命令行 D. 宏名必须用大写字母表示 19、若有定义 int m=4321,n=123,k=21; 语句printf("%4d+%3d+%2d",m,n,k); 执行后的输出结果是( )。 A. 4321432143211231231232121 B. 432112321 C. 4321+123+21 D. 432+123+021 20、( )语句符合C语言语法。 A. B. C. D. 21、已有如下定义和输入语句,char c1,c2;int x; scanf("%c%d%c",&c1,&x,&c2);若要求x、c1、c2的值分别为9、'K'和'H',正确的数据输入是( )。 A. K9H B. K 9 H C. K9 H D. 9KH 22、 A. B. C. D. 23、若有定义:struct student{int num; char sex; int age;}stu1;下列叙述不正确的是( )。 A. student是结构体类型名 B. struct student是结构体类型名 C. stu1是用户定义的结构体类型变量名 D. num,sex,age都是结构体变量stu1的成员 24、有以下程序: main() { int c; while((c=getchar())!= '\n') { 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"); } 当输入:247<回车>,程序的输出结果是( )。 A. 689 B. 6689 C. 66778 D. 66887 25、 A. B. C. D. 26、下面叙述错误的是( )。 A. B. C. 预处理命令行必须以分号结束 D. C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率 27、 A. B. C. D. 28、对二维数组的正确定义是(   ) A. B. C. D. 29、在C语言中,运算符″=″和″==″的功能分别是(    ) A. 关系运算和赋值运算 B. 关系运算和赋值运算 C. 都是关系运算 D. 都是赋值运算 30、下面叙述错误的是( ) A. 数组中每一个元素都属于同一个数据类型 B. C语言数组名称是数组在内存中的首地址 C. C语言数组长度在定义数组时可不作确定 D. C语言规定可逐个引用数组元素但不能一次引用整个数组 31、以下程序段运行后s的值是( )。 int a[3][3]={1,2,3,4,5,1,2,3,4}; int i,j,s=1; for(i=0;i<3;i++) for(j=i+1;j<3;j++) s+=a[i][j]; A. 6 B. 120 C. 7 D. 240 32、若有定义:int a=6,b=7,k=0,t=1; 语句 (k=a<b) && (t=a==b); 运行后,k、t的值分别是( )。 A. 0 0 B. 1 1 C. 0 1 D. 1 0 33、以下在任何情况下计算平方数时都不会引起二义性的宏定义是( )。 A. B. C. D. 34、若有下面定义,能打印出字母'L'的语句是( )。 struct class { char name[8]; int age; }; struct class s[12]={"Zheng",16,"Lin",18,"Yang",19,"Guo",20}; A. printf("%c\n",s[1].name[0]); B. printf("%c\n",s[2].name[0]); C. printf("%c\n",s[1].name); D. printf("%c\n",s[2].name); 35、设已定义 float a=2.0,b=3.0; 使a值为5.0的表达式是( )。 A. a+= b B. a*=b+2.0 C. a/=b+2.0 D. a-=b+2.0 36、以下叙述中正确的是( ) A. C源程序中注释部分可以出现在程序中任意合适的地方 B. C. C源程序编译时注释部分的错误将被发现 D. 构成C源程序的基本单位是函数,所有函数名都可以由用户命名 37、( )是正确的数组定义。 A. int n=10,x[n]; B. int x[10]; C. int N=10;int x[N]; D. int n;scanf("%d",&n); int x[n]; 38、以下程序段运行后变量k的值为( )。 int m=7,n=2,k;k=(m^n)<<1; A. 0 B. 98 C. 20 D. 10 39、若定义 int a=-5,b=-8,c=-12; 则表达式 a>=b||b<c 的值为( )。 A. 变量i的值 B. 变量j的值 C. 0 D. 1 40、执行下面程序段后,输出字符B的个数是(    ) x=0; while(x<=5){ printf("B"); x+=2; } A. 0个 B. 3个 C. 5个 D. 6个 一、单选(共计100分,每题2.5分) 1、 A. 0,0 B. 10,3 C. 13,7 D. 7,13 2、 以下程序的运行结果是( )。 void main() { int n=9; switch(n--) { default: printf("%d ",n++); case 8: case 7: printf("%d ",n); break; case 6: printf("%d ",n++); case 5: printf("%d ",n); } } A. 8 B. 7 C. 8 9 D. 8 7 3、x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为( )。 A. -20<x<-5 B. x>-20 && x<-5 C. !(x>-20) && !(x<-5) D. -5<x<-20 4、若有定义:int x=10,y=8,a; 则执行语句a=((--x==y)? x: y);后,变量a的值是( )。 A. 8 B. 9 C. 10 D. 0 5、以下程序段运行后s的值是( )。 int a[3][3]={1,2,3,4,5,1,2,3,4}; int i,j,s=1; for(i=0;i<3;i++) for(j=i+1;j<3;j++) s+=a[i][j]; A. 6 B. 120 C. 7 D. 240 6、若有以下定义: struct node { int data; struct node *next; } struct node *p; 已建立如下图所示的链表: ┌──┬──┐ ┌──┬──┐ ┌──┬──┐ p →│data│next┼ →│data│next┼ →... →│data│NULL│ └──┴──┘ └──┴──┘ └──┴──┘ 指针p指向第一个结点,能输出链表所有结点的数据成员data的循环语句是( )。 A. while(p!=NULL) { printf("%d,",p->data); p++; } B. while(p) { printf("%d,", p.data); p=p->next; } C. for( ; p!=NULL; p++) printf("%d,", p->data); D. for( ; p; p=p->next) printf("%d,", (*p).data); 7、若有定义:int a=6,b=7,k=0,t=1; 语句 (k=a<b) && (t=a==b); 运行后,k、t的值分别是( )。 A. 0 0 B. 1 1 C. 0 1 D. 1 0 8、以下程序的可执行文件名为abc.exe。 #include <stdio.h> #include <stdlib.h> void main(int argc,char *argv[]) {if(argc!=2) {printf("Input error\n"); exit(1); } printf("I love %s\n",argv[1]); } 在DOS命令行输入:abc right<回车>,则输出结果是( )。 A. Input error B. I love abc C. I love right D. I love 9、以下程序的运行结果是( )。 void main() {int s = 0, i = 0; while(i< 8) { i++; if(i%2==0) continue; s+=i; } printf("%d\n",s); } A. 36 B. 7 C. 16 D. 12 10、以下在任何情况下计算平方数时都不会引起二义性的宏定义是( )。 A. B. C. D. 11、以下程序中的循环执行了( )次。 #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() { int i,n=0; for(i=0;i<NUM;i++) n++; printf("%d\n",n); } A. 5 B. 6 C. 8 D. 9 12、 A. B. C. D. 13、C语言整型数据在内存中的代码是用( )表示的。 A. 原码 B. 反码 C. 补码 D. BCD码 14、以下程序运行后,文件test.txt的内容是( )。 #include <stdio.h> main() { FILE *fp; char str[][10]={"first","second"}; fp = fopen("test.txt", "w"); if(fp!=NULL) fprintf(fp,"%s",str[0]); fclose(fp); fp = fopen("test.txt", "w"); if(fp!=NULL) fprintf(fp,"%s",str[1]); fclose(fp); } A. first B. second C. first second D. second first 15、以下程序段运行后x的值为( )。 int a[8]={1,2,3,4,5,6,7,8},i,x=0; for(i=0;i<8;i++,i++) x=x+a[i]; A. 36 B. 16 C. 20 D. 18 16、以下程序段的运行结果是( )。 int s=15; switch(s/4) {default: printf("Over "); case 1: printf("One "); break; case 2: printf("Two ");} A. Two B. Over Two C. Over One D. One 17、以下程序段运行后变量k的值为( )。 int a=3,b=2; int k; k=(--a==b++)?a:b+1; A. 0 B. 1 C. 2 D. 3 18、以下程序段的运行结果是( )。 int a[]={1,2,3,4},i,j; j=1; for(i=3;i>=0;i--) { a[i]=a[i]*j; j=j*3; } for(i=0;i<4;i++) printf("%d ",a[i]); A. 3 6 9 12 B. 18 12 9 4 C. 27 18 9 4 D. 54 18 9 4 19、( )语句符合C语言语法。 A. B. C. D. 20、以下程序段的运行结果是( )。 char str[3][2]={ 'a','b','c','\0','e','f'};printf("%s",str[0]); A. a B. abcef C. abc\0ef D. abc 21、若有定义:int a=3,b=2,c=3; 则值为0的表达式是( )。 A. (a-b)==(c/b) B. a>=c C. c-b||a+b&&(b*c-a-c) D. (b*c-a-c)&&(b*c-a-b) 22、对于以下程序,说法正确的是( )。 #include <stdio.h> main() { FILE *fp; fp=fopen("quiz.txt", "w"); if(fp!=NULL) { fprintf(fp,"%s\n", "success!"); fclose(fp); printf("ok!"); } } A. 程序运行后,当前工作目录下存在quiz.txt文件,其中的内容是"ok!" B. 程序运行后,当前工作目录下存在quiz.txt文件,其中的内容是"success!" C. 程序运行之前,当前工作目录下一定不存在quiz.txt文件 D. 程序运行之前,当前工作目录下一定存在quiz.txt文件 23、在对无符号数的位运算中,操作数左移三位相当于( )。 A. 操作数除以6 B. 操作数乘以6 C. 操作数除以8 D. 操作数乘以 24、若已定义 int a=11; 执行以下语句后的输出结果是( )。 printf("a=%d,a=%o,a=%x\n",a,a,a) ; A. a=11, a=11, a=b B. a=11, a=13, a=b C. a=11, a=13, a=c D. a=11, a=12, a=13 25、 A. B. C. D. 26、若有定义 int m=4321,n=123,k=21; 语句printf("%4d+%3d+%2d",m,n,k); 执行后的输出结果是( )。 A. 4321432143211231231232121 B. 432112321 C. 4321+123+21 D. 432+123+021 27、执行下面程序段后,输出字符B的个数是(    ) x=0; while(x<=5){ printf("B"); x+=2; } A. 0个 B. 3个 C. 5个 D. 6个 28、若有定义:int a=3; 语句a+=a-=a*a; 运行后,a的值为( )。 A. 0 B. -3 C. -12 D. -6 29、在C语言中,若定义二维数组a[2][3],设a[0][0]在数组中位置为1,则a[1][1]在数组中位置是( )。 A. 3 B. 4 C. 5 D. 6 30、当顺利执行了文件关闭操作时,fclose函数的返回值是( )。 A. 1 B. 0 C. -1 D. 一个非0值 31、以下程序的运行结果是( )。 main() { int a[3]={1,2,3}; int *num[3]; int **p,i; for(i=0;i<3;i++) num[i]=&a[i]; p=num; printf("%d",**p);} A. 1 B. 3 C. &a[0] D. num 32、 只能向终端输出一个字符的是( )。 A. printf()函数 B. scanf()函数 C. getchar()函数 D. putchar()函数 33、构成C源程序的基本单位是( ) A. 语句 B. 变量 C. 运算符 D. 函数 34、C语言函数体由( )括起来。 A. B. C. D. 35、若有定义: int i,x=0; 语句for(i=1;i<=3;i++) x+=2;与下列( )程序段不等价。 A. i=1;for( ;i<=3;i++) x+=2; B. i=1;for( ; ;i++) x+=2; C. for(i=1;i<=3; ) {x+=2; i++;} D. i=1;for( ;i<=3; ) {x+=2; i++; } 36、若有定义:int x; char c='A'; 则正确的赋值表达式是( )。(说明:'A'的ASCII码的十进制值为65,'a'的ASCII码的十进制值为97) A. x=c+32 B. x=c+'ABC' C. x=c+'CBA' D. x='ABC' 37、 A. 计算文件wj.txt的起始地址 B. 计算文件wj.txt的终止地址 C. 计算文件wj.txt的长度 D. 将文件指针定位到文件末尾 38、若有定义:float x=3.5,y=3.6; 则表达式( )的值为6。 A. (int)x+(int)y B. x+y C. (int)(x+y) D. int(x+y) 39、 A. 4 B. 5 C. 8 D. 9 40、 A. B. C. D.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服