浙江专升本C语言程序设计模拟2.docx
- 文档编号:6496242
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:16
- 大小:30.11KB
浙江专升本C语言程序设计模拟2.docx
《浙江专升本C语言程序设计模拟2.docx》由会员分享,可在线阅读,更多相关《浙江专升本C语言程序设计模拟2.docx(16页珍藏版)》请在冰豆网上搜索。
浙江专升本C语言程序设计模拟2
程序设计模拟试卷
(二)
1.单项选择题(在本题的每一小题的备选答案中只有一个答案是正确的,请把你认为正确答案的题号,填入题于的括号内。
多选不给。
每题1分,共20分)
1.以下符合语法规则的用户标识符是( )。
(1)1st
(2)break (3)B757 (4)TwoWords
2.若要求在if语句括在圆括号对中的表达示表示a不等于0的关系,则能正确表示这一关系的表达式是( )。
(1)a<>0
(2)!
a (3)a=0 (4)
3.若定义
inta=1,b=2,c=3,d=4,e;
则执行下述语句
e=a>b?
a:
c c: d; 后,e的值为( )。 (1)1 (2)2 (3)3 (4)4 4.下面的语句组所表示的数学函数关系是( )。 y=-1; if(x! =0) if(x>0) y=1; else y=0; 5.以下叙述正确的是( )。 (1)do-while语句构成的循环不能用其他语句构成的循环来代替 (2)do-while语句构成的循环只能用break语句退出 (3)do-while语句构成的循环,在while后的表达式为非零时结束循环 (4)do-while语句构成的循环,在while后的表达式为零时结束循环 6.有以下程序 #include main() { intx,i; for(i=1;i<=50;i++) { x=i; if(++x%2==0) if(x%3==0) if(x%7==0) printf("%d",i); } printf("\n"); } 执行此程序的输出结果是( )。 (1)28 (2)27 (3)42 (4)41 7.执行下述程序的输出是( )。 #include main() { inty=9; for(;y>0;y--) { if(y%3==0) { printf("y%3==0); continue; } if(y! =1) printf("%c",' '); else printf("\n"); } } (1)741 (2)852 (3)963 (4)875421 8.若有以下程序片段 charstr[]="ab\n\012\\\""; printf("%d\n",strlen(str)); 则执行printf语句的输出结果是( )。 (1)6 (2)12 (3)3 (4)4 9.对于如下之程序段,应有( )。 chara[10],b[]="China"; a=b; printf("%s",a); (1)运行后将输出China (2)运行后将输出ch (3)运行后将输出c (4)程序出错,不能运行 10.执行下述程序的输出结果是( )。 #include main() { inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1]; for(i=0;i<4;i+=2) printf("%d",p[i]); printf("\n"); } (1)5 2 (2)5 1 (3)5 3 (4)9 7 11.以下程序当运行时,如果从键盘上输入 book book 则输出结果是( )。 #include #include main() { chara1[80],a2[80],*s1=a1,*s2=a2; gets(s1); gets(s2); if(! strcmp(s1,s2)) printf("*"); else print("#"); printf("%d\n",strlen(strcat(s1,s2))); } (1)*8 (2)#9 (3)#8 (4)*9 12.下面的程序段的运行结果是( )。 charstr[]="NBA",*p=str; printf("%d\n",*(p+3))); (1)65 (2)0 (3)字符'A'的地址 (4)A 13.决定c语言中函数返回值类型的是( )。 (1)return语句中的表达式类型 (2)调用该函数的主调函数类型 (3)调用函数时临时指定的类型 (4)定义函数时在函数首部中所指定的类型(若缺省,则隐含为int型) 14.执行下述程序的输出结果是( )。 #include intfunc(intx,inty,int*cp,int*dp) { *cp=x+y; *dp=x-y; } main() { inta,b,c,d; a=30; b=50; func(a,b,&c,&d); printf("%d,%d\n",c,d); } (1)80,-20 (2)80,20 (3)50,30 (4)30,50 15.欲定义一函数,其功能是交换两个整数值,且通过函数调用能返回交换的结果。 能正确执行此功能的函数定义是( )。 (1)func(intx,inty) { intt; t=x; x=y; y=t;; } (2)func(int*x,int*y) { *x=*y; *y=*x; } (3)func(int*x,int*y) { intt; t=*x; *x=*y; *y=t; } (4)func(int*x,int*y) { int*t; *t=*x; *x=*y; *y=*t; } 16.执行下述程序的输出结果是( )。 #include intd=1; func(intp) { staticintd=5; d+=p; printf("%d",d); return(d); } main() { inta=3; printf("%d\n",func(a+func(d)); } (1)699 (2)669 (3)61515 (4)6615 17.设有如下定义 structsk { inta; floatb; }data,*p; 若有p=&data; 则对data中的成员a的正确引用是( )。 (1)(*p).data.a (2)(*p).a (3)p->data.a (4)p.data.a 18.若已建立下面的链表结构,指针变量p、q分别指向图中所示结点,则下列语句组中,不能实现将q所指向的结点插入到链表末尾的一组语句是( )。 (1)q->next=NULL; (2)p=p->next; p=p->next; q->next=p->next; p->next=q; p->next=q; (3)p=p->next; (4)p=(*p).next; q->next=p; (*q).next=(*p).next; p->next=q; (*p).next=q; 19.函数调用语句 fseek(fp,-20L,2); 的含义是( )。 (1)将文件位置指针移动到距离文件头20个字节处 (2)将文件位置指针从当前位置向后移动20个字节 (3)将文件位置指针从文件末尾处向后退20个字节 (4)将文件位置指针移动到离当前位置20个字节处 20.若以下程序所生成的可执行文件名为filel.exe,则当在操作系统状态下输入下述命令行执行该程序时 FILE1CHINABEIJINGSHANGHAI 程序的输出结果是( )。 #include main(intargc,char*argv[]) { while(argc-->1) { ++argv; printf("%s",*argv); } printf("\n"); } (1)CHINABEIJINGSHANGHAI (2)FILE1CHINABEIJINGSHANGHAI (3)CBS (4)FCB 二、填充题(每空2分,共30分) 1.设x是个实型变量。 满足数学式|x|>4的c语言表达式是________________。 (写出任意一种) 2.下面程序的功能是: 输出100以内能被3整除且个位数为6的所有整数。 请填空。 #include main() { inti,j; for(i=0;i<10;i++) { j=i*10+6; if(____________) continue; printf("%d\n",j); } } 3.设n是整型变量,且已具有某正整数值。 今欲根据下述数学式 求s的值并输出。 可编写如下之程序段实现之。 请填空。 doubles; intk; s=1.0; for(k=1;k<=n;k++) s+=______________; printf("%f\n",s); 4.执行下述程序将输出3到100之间的所有素数。 请填空。 #include main() { inti,j; for(i=3;i<=100;i++) { for(j=2;j<=i-1;j++) if(________) break; if(j==i) printf("%3d",i); } printf("\n"); } 5.执行下述程序的输出结果是____________。 #include main() { inti=3,j=2; char*a="DCBA"; printf("%c%c\n",a[i],a[j]); } 6.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同的字符的ASCII代码值之差。 例如: 若输入的两个字符串分别为“avcdefg"和“abceef",则将输出-1。 但若两个字符串相同,则将输出0。 请填空。 #include main() { chars1[100],s2[100]; inti,sub; printf("\nInputstring1: \n"); gets(s1); printf("\nInputstring2: \n"); gets(s2); i=0; while((s1[i]==s2[i])&&(s1[i]! ='\0')) i++; sub=_________________; printf("%d\n",sub); } 7.执行下述程序的输出结果是_____________。 #include main() { staticchara[]="language"; char*ptr==a; while(*ptr) { printf("%c",*ptr-32); prt++; } printf("\n"; } 8.以下函数func的功能是: 累加n个数组元素的值,将和值放入x所指的存储单元中。 请填空。 func(intb[],intn,int*x) { intk,sun=0; for(k=0;k sun+=b[k]; ______________; } 9.已知标准为函数isalpha的功能是判断某变量是否为字母,若是,返回函数1,否则,返回函数0。 执行下述程序的输出结果是_________________。 #include #include voidfunc(chars[]) { inti,j; for(i=0,j=0;s[i];i++) if(isalpha(s[i])) s[j+1]=s[i]; s[j]='\0'; } main() { charss[80]="That'sit! "; func(ss); printf("%s\n",ss); } 10.执行下述程序的输出结果是________________。 #include intast(intx,inty,int*cp,intdp) { *cp=x+y; | dp=x-y; } main() { inta=4,b=3,c=6,d=5; ast(a,b,&c,d); printf("%d,%d\n",c,d); } 11.下面函数的功能是根据近似公式 求 值。 请填空。 (可使用标准库函数sqrt求某数平方根) #include doublepi(longn) { doubles=0.0; longi; for(i=1;i<=n;i++) s=s+1.0/(i*i); return(__________________); } 12.以下函数min的功能是: 查找带有头结点的单向链表中结点数据域的最小值,并 作为函数值返回。 链表结构如下图所示 请填空。 structnode { intdata; structnode*next; }; intmin(structnode*first) { structnode*p; intm; p=first->next; m=pg>data; for(p=p->next;p! =NULL;p=__________) if(m>p->data) m=p->data; return(m); } 13.执行下述程序时,程序员由键盘输入一个文本文件名,然后输入一串字符(以字符 “#”作为输入结束标志),将它们写入到该文本文件中形成一行,然后再将字符个数 (不包含“#”符)再写入该文本文件的下一行。 请填空。 #include #include #inclued main() { FILE*fp; char、ch,fname[30]; intcount=0; printf("Inputthefilename: "); scanf("%s",fname); if((fp=fopen(fname,"W"))==NULL) { printf("Can'topenfile: %s\n",fname); exit(0); } printf("Enterdata('#'tostop): "); while((ch=getchar())! ='#') { fputc(ch,fp); _____________; } fprintf(fp,"\n%d\n",count); fclose(fp); } 14.磁盘文件按文件中数据格式分类可以分成文本文件和_____________。 15.设有下述枚举类型定义和枚举变量说明 enumdays { MON,TUE,WED,THU,FRI,SAT,SUN }; enumdaystoday,dayaftertomorrow; 设已知today的值,表示今天是星期几,求dayaftertomorrow的值,即后天又是星期 几。 比如,若today的值是WED,则dayaftertomorrow的值应是FRI;若today的值是 SAT,则dayaftertomorrow的值应是MON。 请填写表示后天是星期几的表达式。 dayaftertomorrow=______________________。 三、程序分析题(每题5分,共30分) 1.阅读下述程序 #include #defineM10 voidmat(intaa[][M],intn) { inti,j; for(j=0;j aa[0][j]=(n-j)*(n-j); for(i=1;i { for(j=0;jMn-1;j++) aa[i][j]=aa[i-1][j+1]; aa[i][n-1]=aa[i-1][0]; } } main() { inti,j,k,a[M][M]; printf("Enterk(1= scanf("%d",&k); mat(a,k); printf("The%d*%dmatrixgeneratde: \n",k,k); for(i=0;i { for(j=0;j printf("%4d",a[i][j]); printf("\n"); } } 若当运行程序时有如下之交互信息 Enterk(1= (带下划线的表示输入信息) 请写出此后的输出结果。 2.阅读下述程序 #include #defineN10 main() { inti,j,k,u; inta[N]; for(i=0;i scanf("%d",&a[i]); for(i=1;i for(j=0;j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江 语言程序设计 模拟