c语言练习题 (8)
2018年9月计算机二级C语言考试章节习题及答案(8)
2018年9月计算机二级C语言考试章节习题及答案(8) 第2章 C程序设计的初步知识2.5 算术表达式1 [单选题] 以下不能正确计算代数式值的C语言表达式是( )。
A.1/3*sin(1/2)*sin(1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)参考答案:A2 [单选题] 若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。
A.1B.0C.2D.不知道a的值,不能确定参考答案:A参考解析:逻辑或”||”要求只要两边的运算对象有一个非零,结果就为真。
虽然不知道a的值,但是若a为l,则左边运算对象为1;若a的值不是1,则右边运算对象的值为1,所以总能保证一边非零,所以结果为真,即1。
3 [单选题] 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )A.x=x*100+0.5/100.0;B.x=(x*100+0.5)/100.0;C.x=(int)(x*100+0.5)/100.0;D.x=(x/100+0.5)*100.0;4 [单选题] 表达式3.6-5/2+1.2+5%2的值是( )。
A.4.3B.4.8C.3.3D.3.8参考答案:D 。
参考解析:此题考核的是算术运算符的运算规则,算术运算符的结合方向为“自左至右”,先按运算符的优先级别高低次序执行,同时在C中两个整数相除或求余数其结果依旧为整数。
计算后结果为3.8。
5 [单选题] 已知字母A的ASCIl代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是A.kk>='A'&&kk<='Z'B.!(kk>='A'||kk<='Z')C.(kk+32)>='a'&&(kk+32)<='z'D.isalpha(kk)&&(kk<91)参考答案:B6 [单选题] 当变量 c 的值不为 2、4、6时,值也为“真”的表达式是A.(c==2)||(c==4)||(c==6)B.(c>=2&&c<=6)||(c!=3)||(c!=5)C.(c>=2&&c<=6)&&!(c%2)D.(c>=2&&c<=6)&&(c%2!=1)参考答案:B参考解析:条件语句if(a>B.不成立,所以语句a=b;不执行,语句c=a;执行后, c=3,此时条件语句if(C!=A.不成立,所以语句c=b;不执行。
C语言习题(8-9)
C语言习题(8-9)一.填空题1.C语言中,将一个变量的地址称为______________,存放变量地址的变量称为______________。
2.设int a[10]={1,2,3}; 则*(a+3)的值是________________。
3.若使表达式p=”jiangsu”无任何错误(包括语法错误和警告),则p的定义语句为_____________。
4.若有下列定义和语句:int a[4]={0,1,2,3}, *p; p=&a[2];则*--p的值是_____________。
5.执行下列程序段后,变量a的值为_____________。
int *p,a,b=1; p=&a; *p=10; a=*p+b;6.设一个C程序中有如下定义:char line[]=”china”;char *ptr=line;则ptr中为_____________的地址,line[5]中为_____________,*(ptr+2)的值为_____________。
7.假定int型指针p所指对象的值为25,p+1所指对象的值为46,则执行”(*p)++;”语句后,p所指对象的值为_____________。
8.若要使指针p指向一个double型的动态存储单元,请在空白处填上适当的内容:p=____________malloc(sizeof(double));9.若有定义:int (*p)[4];则标识符p是_____________________________________________________。
10.struct student{ int num;char name[20];float score;}stu[3], *p; p=stu;写出通过p访问stu[0]中score成员的两种表达式___________________________________________。
二.选择题1.已有定义int k=2,*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是_____________。
《C语言程序设计》课题题库 (8)
当a=1,b=2,c=3时,执行 以下程序段后c=【1】.
if (a>c) b=a;
a=c;
307 C语言 填空
c=b;
中
答案:
======(答案1)====== 2
当a=3,b=2,c=1;时,执 行以下程序段后 a=【1 】.
if(a>b) a=b;
if(b>c) b=c;
308
C语言 填空
else c=b; c=a;
254 C语言 填空 答案:
中
======(答案1)====== 7
表达式18 && 53 的值 是【1】.
255 C语言 填空 答案:
中
======(答案1)====== 1
下面程序段的输出结果
是【1】.
int a=12;
a=a&0377;pritnf("%d\
n",a);
258 C语言 填空
中
答案:
645 C语言 填空 答案:
中
======(答案1)====== 0
设x=62,表达式 x>=60&&x<70||x==1的 值为【1】.
646 C语言 填空 答案:
中
======(答案1)====== 1
设x=72,表达式 x=(x>=60)的值为【1 】.
647 C语言 填空 答案:
中
======(答案1)====== 1
======(答案1)====== 12
下面程序段的输出结果
是【1】.
int
a=12;a=a&052;printf(
"%d\n",a);
(完整版)【推荐】C语言各章节练习题(含答案)
一、C语言概述练习题选择1.一个C程序的执行是从 A 。
本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是 D 。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是 C 。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由 B 。
A)一个主程序和若干个子程序组成函数组成 C) 若干过程组成 D) 若干子程序组成二、数据类型、运算符与表达式选择. 1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C.x=(i=4,j=16,k=32) A) 4 B) 16 D) 522.下列四组选项中,均不是C语言关键字的选项是 A 。
C) include case scanf D) while go pow3.下列四组选项中,均是不合法的用户标识符的选项是 B 。
4.下列四组选项中,均是合法转义字符的选项是 A 。
\”’‘\\’‘\n’ B)‘\’‘\017’‘\”’ C)‘\018’‘\f’‘xab’ D)‘\\0’‘\101’‘xlf’5.下面不正确的字符常量是 A 。
“c”B) ‘\\’’C) ‘’D) ‘K’6.以下叙述不正确的是 D 。
A) 在C程序中,逗号运算符的优先级最低 B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值7.以下叙述正确的是 B 。
C语言练习题(带详解答案)
C语言练习题(带详解答案)一单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。
C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.intt5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的-,选项B中[与]不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3a某B)某C)caeD)-e2E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的-不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%某B)a+bC)a123D)123选项A中的%,选项B中+不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print_3ddb8aBcB、I\\amone_halftart$it3paiC、tr_1CpppowwhileD、P某qMy->bookline#Hi.age选项B中的\\,$,选项D中>,#,.,-不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
C语言程序设计-第8章 练习题
一、单项选择题题目1标准输出设备显示器的文件流标识符是()。
a. stdinb. stdoutc. stderrd. stdio题目2表示文件结束符的符号常量EOF的值为()。
a. 0b. -1c. 1d. 127题目3假定一个磁盘数据文件占用n个字节的存储空间,则按字节进行编址的范围是()。
a. 1˜(n-1)b. 0˜(n-1)c. 0˜nd. 1˜n题目4在C语言中,为只写操作打开一个文本文件的方式为()。
b. "w"c. "r"d. "a"题目5在C语言中,文本文件的打开方式共有()。
a. 6b. 9c. 12d. 3题目6在C语言中,为读和写操作打开一个二进制文件,若文件不存在则自动建立空文件的打开方式为()。
a. "ab+"b. "w+"c. "rb+"d. "wb+"题目7从一个文本文件中读取以换行符结束的一个字符串的系统函数为()。
a. fgets()b. fputc()d. fputs()题目8向一个文本文件中写入一个字符的系统函数为()。
a. fputs()b. fputc()c. fgetc()d. fgets()题目9向一个二进制文件中写入数据的系统函数为()。
a. fputc()b. fwrite()c. fread()d. fputs()题目10从一个二进制文件中读取数据的系统函数为fread(),它的参数有()。
a. 2个b. 4个c. 3个d. 5个二、判断题题目11一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。
对错题目12当向字符文件输出一个换行符时,实际将输出的是回车符或换行符。
对错题目13C语言系统中提供一个用来描述文件属性的类型标识符为FILE。
对错题目14在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。
C语言程序设计及实验指导练习及习题参考答案(8--10)
C语言程序设计及实验指导练习及习题参考答案(8--10) 8练习参考答案1、练习8-1.如果有定义:intm,n=5,某p=&m;与m=n等价的语句是BA.m=某p;B.某p=某&n;C.m=&n;D.m=某某p;8-2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是输入的两个数,某pum和某pdiff是计算得出的和与差。
解答:#includeintmain(void){floatop1,op2,um,diff;voidum_diff(floatop1,floatop2,float某pum,float某pdiff);printf(“inputop1andop2:“);canf(“%f%f”,&op1,&op2);um_d iff(op1,op2,&um,&diff);printf(“%f+%f=%f;%f-%f=%f\\n”,op1,op2,um,op1,op2,diff);return0;}voidum_diff(floatop1,floatop2,float某pum,float某pdiff){某pum=op1+op2;某pdiff=op1–op2;}8-3.两个相同类型的指针变量能不能相加?为什么?解答:不能。
因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。
8-4.根据表8.2所示,这组数据的冒泡排序其实循环到第6遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1次循环。
请思考如何改进冒泡排序算法并编程实现(提示:当发现一遍循环后没有数据发生交换,说明已经排好序了)。
解答:设置一个标志变量flag,进入一轮循环前设置为0,在循环中有发生数据交换就改写flag值为1。
专升本C语言历年考试题及答案8
专升本C 语言历年考试题及答案江西财经大学2005年专升本选拔考试《C 语言程序设计》试卷(考试时间120分钟,总分100分)一、用C语言描述下列命题(共16分,每小题2分)1、a 、b 和c 均为整型变量,a 和b 中有一个大于c 。
2、数学公式:aac b 242-+-b 的C语言表达式(注:sqrt( )为开方函数)。
3、写出100内的自然数x ,能被3或7整除的表达式。
4、写出判断字符变量ch 是阿拉伯数字字符的表达式。
5、写出满足x<60或90≤x ≤100的C 语言表达式。
6、写出平面上的点(x,y)落在单位圆内的表达式。
7、数组p[10]的各元素用于保存指向char 型的指针,写出该数组的定义。
8、有名为max 的函数,其功能是对两个int 型参数x 、y 进行计算,返回其中的较大者,写出该函数的说明部分。
二、根据要求画出流程图或N-S图(共10分,每小题5分)1、用流程图或N-S 图表示以下算法。
输入x 的值,按下列函数计算y 的值,并输出y 的值。
00101<=>⎪⎩⎪⎨⎧-=x x x y 当当当 2、画出打印以下图案的算法流程图或N-S 图。
&& && & && & & &三、程序阅读题(共20分,每小题4分)1、# include <stdio.h>void main( ) {int i,sum=0;for(i=1;i<=30;i++)if(i%3!=0) continue;else sum=sum+i;printf(“sum=%d\n”,sum);}请叙述上面程序的功能,并写出程序的运行结果。
2、void main( ) {int a,b,x=1,y=1;scanf("%d%d",&a,&b);if (a>0) x=x+y;if (a<b) x=2*y;else if (a==b) y=5;else y=x+y;printf("x=%d,y=%d\n",x,y);}假设输入为: 2 -3<CR>, 则程序运行后的输出结果为: 3、void main() {int a[3][3]={2,4,6,8,10,12,14,16,18};int sum=0, i, j;for ( i=0; i<3; i++)for ( j=0; j<3; j++ )if (i==j) sum+=a[i][j];printf(“sum=%d\n”,sum) ;}请叙述上面程序的功能,并写出程序的运行结果。
《C语言程序设计(何钦铭颜晖主编)》习题8答案
P173习题8 第一题#include<stdio.h>int main(void){char ch;int a[10];int i,j,m;printf("请输入10个整数:\n");for(i=0;i<10;i++){printf("请输入%d第个数:",i+1);scanf("%d",&a[i]);}printf("请输入A或D:");scanf(" %c",&ch);if(ch=='A'){for(i=0;i<9;i++){for(j=i+1;j<10;j++){if(a[i]>a[j]){m=a[i];a[i]=a[j];a[j]=m;}}}}else if(ch=='D'){for(i=0;i<9;i++){for(j=i+1;j<10;j++){if(a[i]<a[j]){m=a[i];a[i]=a[j];a[j]=m;}}}}for(i=0;i<10;i++){printf("%d ",a[i]);}return 0;}第二题#include<stdio.h>int main(void){int a[10];int i,j,x;int search(int list[],int i,int x);printf("输入10个整数:");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("输入一个整数x:");scanf("%d",&x);j=0;for(i=0;i<10;i++){if(search(a,i,x)!=-1){j++;printf("%d",search(a,i,x));}else;}if(j==0)printf("-1");return 0;}int search(int list[],int i,int x){int j;j=0;if(x==list[i])j++;else;if(j==0)return -1;elsereturn i;}第三题#include<stdio.h>void houyi(int a[],int *p,int n,int m);int main(void){int a[20];int i,m,n;printf("请输入整数n:");scanf("%d",&n);printf("请输入%d个整数:",n);for(i=0;i<n;i++)scanf("%d",&a[i]);printf("请输入您要后移的位数m:"); scanf("%d",&m);houyi(a,a,n,m);for(i=0;i<n;i++)printf("%d",a[i]);printf("\n");return 0;}void houyi(int a[],int *p,int n,int m) {int i;int b[20];for(i=0;i<n;i++)b[i]=a[i];for(i=0;i<n;i++){if(i<=n-m-1)*(p+i+m)=b[i];else*(p+(i+m)%n)=b[i];}}第四题#include<stdio.h>void swap2(int *,int *);void bubble(int a[],int n);int main(void){int n,a[8];int i;printf("Enter n(n<=8):");scanf("%d",&n);printf("Enter a[%d]:",n);for(i=0;i<n;i++)scanf("%d",&a[i]);bubble(a,n);printf("After sorted,a[%d]=",n);for(i=0;i<n;i++)printf("%3d",a[i]);return 0;}void bubble(int a[],int n){int i,j,m;static int b[8];for(i=1;i<n;i++){for(j=0;j<n-i;j++){if(a[j]>a[j+1])swap2(&a[j],&a[j+1]);for(m=0;m<n;m++){if(a[m]<=a[m+1])b[m]++;}}if(b[m]==n-1)break;}}void swap2(int *px,int *py){int t;t=*px;*px=*py;*py=t;}第五题#include<stdio.h>#include<string.h>void mcopy(char *s,int m);int main(void){int i,m,l;char str[100];printf("请输入您要输入的字符串:");gets(str);printf("您将从原字符串的第m位复制新字符串,请输入m:\n");scanf("%d",&m);printf("复制后,新的字符串为:");mcopy(str,m);return 0;}void mcopy(char *s,int m){printf("%s\n",s+m-1);}第六题#include<stdio.h>#include<string.h>void delchar(char *,char c);int main(void){char str[80];char ch;printf("Enter a string:");gets(str);printf("Enter delete char:");scanf("%c",&ch);delchar(str,ch);printf("%s\n",str);return 0;}void delchar(char *s,char c){int i,j;char str1[80];j=0;for(i=0;s[i]!='\0';i++){if(s[i]!=c){str1[j]=s[i];j++;}}str1[j]='\0';for(i=0;str1[i]!='\0';i++,s++){*s=str1[i];}*s='\0';}第七题#include<stdio.h>#include<string.h>struct zfc{char str[80];};int main(void){int i,j;char str[80],str1[80];struct zfc s[5];for(i=0;i<5;i++){printf("请输入第%d个字符串:",i+1);scanf("%s",s[i].str);}for(i=0;i<=3;i++){for(j=i+1;j<=4;j++){if(strcmp(s[i].str,s[j].str)>0){strcpy(str1,s[i].str);strcpy(s[i].str,s[j].str);strcpy(s[j].str,str1);}}}for(i=0;i<5;i++){puts(s[i].str);}return 0;}第八题#include<stdio.h>#include<string.h>int main(void){int l,i;char str[80],str1[80];char *p,*q;p=str;q=str1;printf("请输入一串字符:");scanf("%s",str);l=strlen(str);for(i=0;*p!='\0';p++,i++){*(q+l-1-i)=*p;}*(q+l)='\0';if(strcmp(str,str1)==0)printf("输入的字符串是“回文”!\n");elseprintf("输入的字符串不是“回文”!\n");return 0;}第九题#include<stdio.h>#include<string.h>int main(void){char str[80];char *p;p=str;int n1,n2,n3,n4,n5;printf("输入一行文字:");gets(str);n1=n2=n3=n4=n5=0;for(;*p!='\0';p++){if((*p>='A')&&(*p<='Z'))n1++;else if((*p>='a')&&(*p<='z'))n2++;else if(*p==' ')n3++;else if((*p>='0')&&(*p<='9'))n4++;elsen5++;}printf("大写字母字符的个数为:%d\n",n1);printf("小写字母字符的个数为:%d\n",n2);printf("空格字符的个数为: %d\n",n3);printf("数字字符的个数为: %d\n",n4);printf("其他字符的个数为: %d\n",n5);return 0;}第十题#include<stdio.h>#include<string.h>int strcomp(char s1[80],char s2[80]);int main(void){int m;char str1[80],str2[80];printf("请输入第一个字符串:");scanf("%s",str1);printf("请输入第二个字符串:");scanf("%s",str2);m=strcomp(str1,str2);if(m==1)printf("str1>str2\n");else if(m==0)printf("str1=str2\n");elseprintf("str1<str2\n");return 0;}int strcomp(char s1[80],char s2[80]){int a;if(strcmp(s1,s2)>0)a=1;else if(strcmp(s1,s2)==0)a=0;elsea=-1;return a;}第十一题#include<stdio.h>#include<string.h>void fushu(char *p);int main(void){char str[80];printf("请输入一个英语名词单词:");scanf("%s",str);fushu(str);puts(str);return 0;}void fushu(char *p){int i,l;l=0;for(i=0;*(p+i)!='\0';i++){l++;}if(*(p+l-1)=='y'){*(p+l)='e';*(p+l+1)='s';*(p+l+2)='\0';}elseif((*(p+l-1)=='s')||(*(p+l-1)=='x')||((*(p+l-2)=='c')&&(*(p+l-1)=='h'))||((*(p+l-2)=='s')&&(*(p+l-1 )=='h'))){*(p+l)='e';*(p+l+1)='s';*(p+l+2)='\0';}else if(*(p+l-1)=='o'){*(p+l)='e';*(p+l+1)='s';*(p+l+2)='\0';}else{*(p+l)='s';*(p+l+1)='\0';}}第十二题#include<stdio.h>#include<stdlib.h>int main(void){int i,j,a,n,sum,average;int *p;printf("Enter n:");scanf("%d",&n);if((p=(int*)calloc(n,sizeof(int)))==NULL){printf("Not able to allocate memory.\n");exit(1);}printf("您将输入%d个学生的成绩!\n",n);for(i=0;i<n;i++){printf("请输入第%d个学生的成绩:",i+1);scanf("%d",p+i);}sum=0;for(i=0;i<n;i++)sum=sum+*(p+i);average=sum/n;for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(*(p+i)>*(p+j)){a=*(p+i);*(p+i)=*(p+j);*(p+j)=a;}}}printf("学生的平均成绩是:%d\n",average);printf("学生的最高成绩是:%d\n",*(p+n-1));printf("学生的最低成绩是:%d\n",*p);return 0;}。
2016C语言习题全集及答案:第八单元结构体和共用体
第八单元结构体和共用体一、选择题1、说明一个结构体变量时系统分配给它的内存是。
A. 各成员所需要内存量的总和B. 结构体中第一个成员所需内存量C. 成员中占内存量最大者所需的容量D. 结构中最后一个成员所需内存量2、 C 语言结构体类型变量在程序执行期间。
A. 所有成员一直驻留在内存中B. 只有一个成员驻留在内存中C. 部分成员驻留在在内存中D. 没有成员驻留在内存中3、设有以下说明语句struct stu { int a ; float b ; } stutype ;则下面的叙述不正确的是。
A. struct 是结构体类型的关键字B. struct stu 是用户定义的结构体类型C. stutype 是用户定义的结构体类型名D. a 和b 都是结构体成员名4、程序中有下面的说明和定义struct abc { int x;char y;}struct abc s1,s2;则会发生的情况是。
A. 编译出错B. 程序将顺利编译、连接、执行C. 能顺利通过编译、连接、但不能执行D. 能顺利通过编译、但连接出错5、有如下定义struct person { char name[9]; int age;};struct person class[10]={ " Johu", 17,"Paul", 19,"Mary", 18,"Adam",16};根据上述定义,能输出字母M 的语句是。
A. prinft(" %c\n",class[3].name);B. printf(" %c\n",class[3].name[1]);C. prinft(" %c\n",class[2].name[1]);D. printf(" %c\n",class[2].name[0]);6、下面程序的输出是。
C语言程序设计(第3版)-参考答案 (8)
参考答案第 8 章字符、字符数组与字符串一、选择题二、编程题略。
习题一、选择题(1)char类型的变量存储时占据( A )个字节。
A)1 B)2 C)4 D)8 (2)以下选项中,不合法字符常量的是( C )。
A)'\\ ' B)'\xbb' C)'\019' D)'c' (3)已定义变量char c,( C )不能正确地给该变量赋值。
A)c=97 B)c='A' C)c=''B'' D)c='A'+6 (4)以下关于输入输出格式说明符的说法正确的是( A )。
A)%c是char数据的输入输出格式符B)%d是char数据的输入输出格式符C)%s是char数据的输入输出格式符D)%f是char数据的输入输出格式符(5)已知数字字符'0'的ASCII值为48。
以下程序运行后的输出结果是( B )。
#include<stdio.h>void main(){ char a='4',b='5';b=b+2;printf("%c,",b);printf("%d",b-a);}A)5,4 B)7,3 C)5,1 D)4,5 (6)以下选项中,( B )是正确的字符串。
A)'hello' B)"hello " C)hello D)'h' (7)以下语句中,( D )能够正确定义字符数组并存入字符串。
A)char str[]={'\064'}; B)char str="kx43";C)char str=''; D)char str[]="\0";(8)已有定义char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是( C )。
全国计算机二级C语言模拟测试【含详细解析】 (8)
1.下列叙述中正确的是A. 解决同一个问题的不同算法的时间复杂度一般是不同的B. 解决同一个问题的不同算法的时间复杂度必定是相同的C. 对同一批数据作同一种处理,如果数据存储结构不同,不同算法的时间复杂度肯定相同D. 对同一批数据作不同的处理,如果数据存储结构相同,不同算法的时间复杂度肯定相同正确答案:A你的答案:解析:【解析】算法的时间复杂度是指执行算法所需要的计算工作量,而计算工作量是用算法所执行的基本运算次数来度量的。
解决同一个问题的不同算法的时间复杂度,可能相同也可能不相同。
算法的时间复杂度与数据存储结构无关,对同一批数据作同一种处理或者不同处理,数据存储结构相同或者不同,算法的时间复杂度都可能相同或者不同。
故选A选项2.下列处理中与队列有关的是A. 操作系统中的作业调度B. 执行程序中的过程调用C. 执行程序中的循环控制D. 二叉树的遍历正确答案:A你的答案:解析:【解析】队列是指允许在一端进行插入,而在另一端进行删除的线性表。
由于最先进入队列的元素将最先出队,所以队列具有“先进先出”的特性,体现了“先来先服务”的原则。
作业调度是指根据一定信息,按照一定的算法,从外存的后备队列中选取某些作业调入内存分配资源并将新创建的进程插入就绪队列的过程。
执行程序中的过程调用一般指函数调用,需要调用时候转入被调用函数地址执行程序,与队列无关。
执行程序中的循环控制是指算法的基本控制结构,包括对循环条件的判定与执行循环体,与队列无关。
二叉树是一个有限的结点集合,二叉树的遍历是指不重复地访问二叉树中的所有结点,与队列无关。
故本题选择A选项3.设栈的存储空间为S(1:m),初始状态为top=m+1。
经过一系列入栈与退栈操作后,top=1。
现又要将一个元素进栈,栈顶指针top值变为A. 发生栈满的错误B. 2C. mD. 0正确答案:A你的答案:解析:【解析】栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。
C语言程序设计100例之(8):尼科彻斯定理
1≤i≤n/2
0≤j≤i
0≤k≤j
0≤l≤k
(2)源程序。
#include<stdio.h>
int main()
{
int n,i,j,k,l;
scanf("%d",&n);
for (i = 1; i <= n/2; i++)//对i,j,k,l进行穷举
{
t=each[j];
each[j]=each[j+1];
each[j+1]=t;
}
}
int minD(int each[]) //求数组each可组成的最大数
{
int sum=0,i;
for(i=0;i<N;i++)
sum+=each[i]*pow10_int( (N-1-i) );
return sum;
因此,直接用循环输出这个等差数列的各项即可。
(
#include<stdio.h>
int main()
{
int n,a,i;
while(1)
{
scanf("%d",&n);
if(n==0) break;
//输出等差数列,首项为n*n-n+1,公差为2,项数为n
a=n*n-n+1;
printf("%d*%d*%d=%d=%d",n,n,n,n*n*n,a);
8*8+7*7+5*5+3*3=147
9*9+5*5+5*5+4*4=147
专升本C语言 试卷附答案八
专升本C 语言试卷八一、单选题(每小题2 分,共20 分)1、下列程序的输出结果是。
main(){char c1=97,c2=98;printf("%d,%c\n",c1+c2,c2-32);}(A) b,195(B) 195,b(C) B,195(D) 195,B2、下面程序段的执行结果是。
#define prt(a,b) if(!a) b=amain(){int x=1,y=0;if(x>y) prt(x, y);else prt(y,x);printf(“%d,%d”,x, y);}(A) 1,0(B) 0,0(C) 0,1(D) 编译出错3、以下程序的运行结果是。
main(){int m=4;if(--m<4) printf("%d\n",m);else printf("%d\n",m++);}(A) 3(B) 4(C) 5(D) 64、在函数调用语句fun(a+b, (x,y), fun(n, m, (a,b)));中,实参的个数是。
(A) 语句有错误(B) 5(C) 4(D) 35、已知int a=0,b=8,c=4; 则a||b&&!c 的值为。
(A) 1(B) 8(C) 6(D) 06、下列程序的输出结果是。
main(){float s=2.734;printf("%1.2f\n",s);}(A) 2.70(B) 2.7(C) 2.72(D) 27、若x=2,y=4,则x>>1&y 的结果是。
(A) 4(B) 2(C) 1(D) 08、当顺利执行了文件关闭操作时,fclose 函数的返回值是。
(A) TRUE(B) -1(C) 0(D) 19、若已定义char s[10],则在下面表达式中不表示s[1]的地址是。
(A) &s[0]+1(B) s+1(C) s++(D) &s[1]10、下列变量赋值语句中,错误的是。
C语言练习题及参考答案
练习题1及参考答案1. 单项选择题(1)以下并非C语言的特点的是????? 。
A.? C语言简洁和紧凑B. 能够编制出功能复杂的程序C.? C语言可以直接对硬件进行操作D.? C语言移植性好【答】B(2)一个C程序的执行是从????? 。
A.? main()函数开始,直到main()函数结束B. 第一个函数开始,直到最后一个函数结束C. 第一个语句开始,直到最后一个语句结束D.? main()函数开始,直到最后一个函数结束【答】A(3)在C程序中,main()的位置????? 。
A. 必须作为第一个函数B. 必须作为最后一个函数C. 可以任意D. 必须放在它所调用的函数之后【答】C(4)一个C程序是由????? 。
A. 一个主程序和若干子程序组成B. 一个或多个函数组成C. 若干过程组成D. 若干子程序组成【答】B(5)下列说法正确的是????? 。
A. 在执行C程序时不是从main()函数开始的B.? C程序书写格式限制严格,一行内必须写一个语句C.? C程序书写格式比较自由,一个语句可以分行写在多行上D.? C程序书写格式严格要求一行内必须写一个语句,并要求行号【答】C2. 填空题(1)一个C源程序至少有?? ①?? 个main()函数和?? ②?? 个其他函数。
【答】①一? ②若干(2)任何C语句必须以????? 结束。
【答】分号(3)C语言源程序的基本单位是????? 。
【答】函数(4)C编译程序的功能是????? 。
【答】将C源程序编译成目标代码练习题2及参考答案1. 单项选择题(1)以下字符串为标识符的是????? 。
A. _MY????????? ??????B. 2_2222?????? ?????? ??????C. short?????? ?????? ??????D. LINE 5【答】A(2)下列符号可以作为变量名的是????? 。
A. +a????? ?????? ??????B. *p?????? ?????? ?????? ??????C. _DAY????? ?????? ??????D. next day【答】C(3)设c是字符变量,则以下表达式正确的是????? 。
C语言第3版 选择题(第7、8、9章)
习题七一、选择题1.下列叙述中错误的是C。
A) 预处理命令必须以#号开头B) 预处理命令可以写成多行C) 预处理命令必须置于源文件的开始处D) 预处理命令以回车结束2.C语言编译系统对宏替换的处理是在A进行的。
A) 源程序编译前B) 源程序编译时C) 程序连接时D) 程序运行时'3.在宏定义#define PI 中,是C。
A) 单精度数B) 双精度数C) 字符串D) 由PI位置确定其类型4.设有宏定义#define A B abcd ,则宏替换时,A。
A) 宏名A用B abcd 替换B) 宏名A B用abcd 替换C) 宏名A 和宏名B都用abcd 替换D) 语法错误,无法替换5.下列有关宏的叙述中错误的是A。
A) 宏名必须使用大写英文字母~B) 宏替换不占用程序的运行时间C) 宏参数没有数据类型D) 宏名没有数据类型6.下列宏定义,最不会引起二义性的是D。
A) #define ADD(a,b) a+bB) #define ADD(a,b) (a)+(b)C) #define ADD(a,b) (a+b)D) #define ADD(a,b) ((a)+(b))7.设有宏定义#define M 3+2 则表达式2 * M * 3 的值为B。
A) 30 B) 12'C) 10 D) 138.设有宏定义#define Y(n) (4*n) 则表达式3+Y(5+1)的值为B。
A) 21 B) 24C) 27 D) 309.设有宏定义:#define N 3#define M N+2则表达式2*M/N的值为A。
A) 6 B) 3C) D) 错误·替换为2*3 + 2 /3,其中,2/3是整除,值为110.在#include命令中,#include后面的文件名用双引号定界,则系统寻找被包含文件的方式是 D 。
A) 在C系统的include文件夹查找B) 在源程序所在文件夹查找C) 先在C系统的include文件夹查找,查找失败后再到源程序所在文件夹查找D) 先在源程序所在文件夹查找,查找失败后再到C系统的include文件夹查找11.(不要求)设有以下A、B两个程序段,则说法正确的是B。
2014年9月二级C语言程序设计模拟(8)试题及答案
2014年9月二级C语言程序设计模拟(8)试题及答案单项选择题1.下列关于栈和队列的描述中,正确的是( )。
A:栈是先进先出B:队列是先进后出C:队列允许在队头删除元素D:栈在栈顶删除元素参考答案: D 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 栈实际也是线性表,只不过是一种特殊的线性表。
栈是只能在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。
队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。
2.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是( )。
A: ABCDEB: ECABDC: EACDBD: CDEAB参考答案: C 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 由于后序遍历的最后一个元素为E,所以E为根结点,所以它的前序遍历的首个元素为E,故排除A)和D)选项。
由于中序遍历中,元素B在元素根结点E的后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个元素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉树的前序遍历序列是EACDB。
3.在数据流图中,带有箭头的线段表示的是( )。
A:控制流B:数据流C:模块调用D:事件驱动详细解答: 数据流图中带箭头的线段表示数据流,沿箭头方向传递数据的通道,一般在旁边标注数据流名。
4.结构化程序设计的3种结构是( )。
A:顺序结构,分支结构,跳转结构B:顺序结构,选择结构,循环结构C:分支结构,选择结构,循环结构D:分支结构,跳转结构,循环结构参考答案: B 题目分值: 1.0 分您的答案: 得分: 0.0详细解答: 程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。
二级C语言8练习(指针含答案)
1)设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是A)*p=*q; B)p=q; C)*p=&n1; D)p=*q;2) 已定义以下函数int fun(int *p) 4{ return *p;}main(){ a=10,b=4; a=fun(&b); }fun函数返回值是A)不确定的值B)一个整数C)形参p中存放的值D)形参p的地址值3) 若有说明语句:double *p, a; 则能通过scanf语句正确给输入项读入数据的程序段是A)*p=&a; scanf("%lf",p); B)*p=&a; scanf{"%f",p);C)p=&a; scanf("%lf",*p); D)p=&a; scanf{"%lf",p);4) 有以下程序main(){ int a=1, b=3, c=5;int *p1=&a, *p2=&b, *p=&c;*p =*p1*(*p2);printf("%d\n",c);}执行后的输出结果是A)1 B)2 C)3 D)45)以下程序的输出结果是 3 5 。
#include<stdio.h>void swap( int *a, int *b ){ int *t ;t=a; a=b; b=t;}main(){ int i=3,j=5,*p=&i,*q=&j;swap(p,q); printf(“%d %d\n”,*p,*q);}(6) 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是A) p=1; B) *q=2; p=2; C) q=p; D) *p=5;int **q=&p; q=&p; *q=*(&p)=p(7) 有以下程序片段:void fun(char *a, char *b) a=&c1,b=&c2;{ a=b; (*a)++; } a=&c2; c2='b';main (){ char c1=‘A’, c2=‘a’, *p1, *p2;p1=&c1;p2=&c2;fun(p1,p2);printf(“%c%c\n”,c1,c2);}程序运行后的输出结果是A) Ab B) aa C) Aa D) Bb(8) 已定义以下函数int *fun (int *p) p=&i;{ return p; }main(){ int i,*p=&i;int *q;q=fun(p); }该函数的返回值是A) 不确定的值B) 形参p中存放的值C) 形参p所指存储单元中的值D) 形参p的地址值(9) 有以下程序段片段:main(){ int a=5, *b, **c;c=&b; b=&a; c=&(&a); **c=**(&&a)……}程序在执行了c=&b; b=&a;语句后,表达式:**c的值是A) 变量a的地址B) 变量b中的值C) 变量a中的值D) 变量b的地址(10) 有以下程序片段:int *f(int *x,int *y) x=p=&a y=q=&b;{ if(*x<*y) a<b;return x;elsereturn y;}main(){ int a=7,b=8,*p,*q,*r;p = &a;q = &b;r = f(p,q); =&aprintf(“%d,%d,%d”,a,b,*r);}执行后输出结果是A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,8(11) 有以下程序片段:void fun(char *c,int d) c=&b,d='A'{ *c=*c+1; d=d+1; *c='C' d='B'printf(“%c,%c,”,*c,d);}main(){ char a='A', b='B';fun(&b, a); printf(“%c,%c\n”,a,b);}程序运行后的输出结果是C,B,A,C(12) 下列程序段的输出结果是void fun(int *x, int *y) x=&m.y y=&m.x &m.y=3 &m.x=4{ printf(“%d %d”, *x, *y); *x=3; *y=4;}main(){ int x=1,y=2;fun(&y, &x);printf(“%d %d”,x, y);}A) 2 1 4 3 B) 1 2 1 2C) 1 2 3 4 D) 2 1 1 2(13) 下列程序的运行结果是A) 6 3 B) 3 6 C) 编译出错D) 0 0以下是引用片段:void fun(int *a, int *b) a=&m.a b=&m.b{ int k;k=a; a=b; b=k;}main(){ int a=3, b=6, *x=&a, *y=&b;fun(x,y);printf(“%d %d”, a, b);}(14) 若有以下定义和语句:double r=99,*p=&r;*p=r;则以下正确的叙述是A) 以上两处的*p含义相同,都说明给指针变量p赋值B) 在"double r=99,*p=&r;"中,把r的地址赋值给了p所指的存储单元C) 语句"*p=r;"把变量r的值赋给指针变量pD) 语句"*p=r;"取变量r的值放回r中(15) 以下程序运行后,a的值是A) 4 B) 1 C) 0 D) 运行时出错,a无定值以下是引用片段:main(){ int a,k=4,m=6,*p1=&k,*p2=&m;a=(p1= =&m);printf("%d\n",a);}(16) 若有定义和语句:int **pp, *p, a=10, b=20;pp=&p;p=&a; *p=10p=&b; *p=20 **pp=**(&p)=*p=20printf("%d\n",*p,**pp);则输出结果是:A)10,20 B)10,10 C)20,10 D)20,20(17) 以下程序的输出结果是以下是引用片段:#includesubl(char a,char b) {char c; c=a;a=b;b=c;}sub2(char* a,char b) {char c; c=*a;*a=b;b=c;}sub3(char* a,char*b) {char c; c=*a;*a=*b;*b=c;}main(){char a,b;a='A'; b='B';sub3(&a, &b);putchar(a); putchar(b); BAa='A'; b='B';sub2(&a,b);putchar(a); prtchar(b); BBa='A'; b='B';sub1(a,b);putchar(a); putchar(b); AB}A) BABBAB B) ABBBBAC) BABABA D) BAABBA二、填空题:(1) 有以下程序片段:void f( int y, int *x) y=4 x=&m.x{y=y+*x; *x=*x+y;} y=6 m.x=8main( ){ int x=2,y=4;f(y, &x);printf(“%d %d\n”,x,y);}。
C语言习题8
第一章概述1.一个C程序的执行是从()A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束2.以下叙述正确的是:()A.在C程序中,main函数必须位于程序的最前面B.程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误3.以下叙述不正确的是:()A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面4.C语言规定:在一个源程序中,main的位置()A.必须在最开始B.必须在系统调用的库函数后面C.可以任意D.必须在最后5.一个C语言程序是由()A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成6.C源程序的基本单位是____________7.一个C源程序中至少包括一个____________8.在一个C源程序中,注释部分两侧的分界符分别为____________和____________9.在C语言中,输入操作是由库函数____________完成的,输出操作是由库函数____________完成的参考答案1.A2.C3.D4.C5.B6.函数7.(main)函数8./**/9.scanf printf第三章基本数据类型1.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种2.下面四个选项中,均是不合法的用户标识符的选项的是:()A.A p_o doB.float lao_AC.b-a goto intD._123temp INT3.下面四个选项中均是合法整型常量的选项是()A.160-0xffff011B.-0xcdf01a0xeC.-01986,0120668D.-0x48a2e50x4.下面四个选项中,均是合法的浮点数的选项是()A.+1e+15e-9.403e2B.-6.012e-4-8e5C.123e 1.2e-4-8e5D.-e38e-4 5.e-05.下面四个选项中,均是合法转义字符的选项是()A.'\"‘\\'‘\n'B.‘\'‘\017'‘\"'C.'\018'‘\f'‘xab'D.'\\0'‘\101'‘x1f'6.下面四个选项中,均是正确的数值常量或字符常量的选项的是()A.0.00f8.9e‘&'B."a" 3.9E-2.51e1‘\"'C.'3'0110xFF000aD.+0010xabcd2e2507.在C语言中,char型数据在内存中存储形式是()A.补码B.反码C.原码D.ASCII码8.若有说明语句:char c='\72';则变量c()A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定9.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()A.intB.floatC.doubleD.不确定10.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()A.2.500000B.2.750000C.3.500000D.0.00000011.若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum值为()A.7B.8C.9D.1012.若有代数式3ae/bc,则不正确的C语言表达式是()A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*313.若a是int型变量,且a的初值为6,则计算表达式后a的值为()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1) 设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为(B )。
struct student
{
char name[20];
int age;
char sex;
} stu[5],*p;
p=stu;
A) scanf ("%s",stu[0].name);
B) scanf("%d",p->age);
C) scanf("%c",&(p->sex));
D) scanf("%d",&stu[0].age);
(2) 若定义如下结构,则能打印出字母M的语句是(B )。
struct person{
char name[9];
int age;
};
struct person class[10]={"Wujun",20,
"Liudan",23,
"Maling",21,
"zhangming",22};
A) printf("%c\n",class[3].name);
B) printf("%c\n",class[2].name[0]);
C) printf("%c\n",class[2].name[1]);
D) printf("%c\n",class[3].name[1]);
(3)在C程序中,使用结构体的目的是(A)。
A)将一组相关的数据作为一个整体,以便程序使用。
B)将一组相同数据类型的数据作为一个整体,以便程序使用。
C)将一组数据作为一个整体,以便其中的成员共享存储空间。
D)将一组数值一一列举出来,该类型变量的值只限于列举的数值范。
(4) 设有100个学生的考试成绩数据表如下形式:
学号no 整型
姓名name 字符数组型
成绩score 实型
在下面结构数组的定义中,不正确的是( B )。
A)struct student
{
int no;
char name[10];
float score;
};
struct student stud[100];
B)struct stud[100]
{
int no;
char name[10];
float score;
}
C)struct student
{
int no;
char name[10];
float score;
}stud[100];
D)struct
{
int no;
char name[10];
float score;
}stud[10];
(5) 下列程序的输出结果为( C )。
(数据类型long ,int ,char 的长度分别为4,2,1个字节) # include<stdio.h>
main ()
{
union
{
long k;
int i[6];
char c[4];
}r;
printf("%d\n",sizeof(r) );
}
A)4
B)6
C)12
D)20
(6) 下列程序运行的正确结果是( D )。
main()
{
union
{ int count[2]
char ch[4];
} un;
int i;
char letter=6;
for(i=0;i<4;i++) un.ch[i]=letter++;
for(i=0;i<4;i++) printf("%d\t",un.ch[i]);
printf("\n");
}
A)9 8 7 6
B)7 8 9 0
C)0 7 8 9
D)6 7 8 9
(7) 联合(union)变量所占的内存变量长度为( C )。
A)最短的成员的长度
B)所定义的变量的内存总和
C)最长的成员的长度
D)占有一个成员的长度
(8) 下列程序的输出结果为( B )。
main()
{
struct date
{
int year ,month, day;
}today;
union
{
long i; int k; char ch;
}mix;
printf("%d,", sizeof(struct date));
printf("%d",sizeof(mix));
}
A)6,2
B)6,4
C)8,4
D)8,6
(9) 设有一结构体类型变量定义如下:
struct date
{
int year;
int month;
int day;
};
struct worklist
{
char name[20];
char sex;
struct date birthday;
} person;
若要对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是( C )。
A)year=1976
B)birthday.year=1976
C)person.birthday.year=1976
D)person.year=1976
(10) 下列程序的输出结果为( A)。
# include <string.h>
main( )
{
void func( );
struct date {
int a;
char s[ 5];
}arg;
arg.a=27;
strcpy( arg.s, "abcd");
func(&arg.a,arg.s);
printf(" arg.a=%d,arg.s=%s\n", arg.a ,arg.s);
}
void func ( int *x,char s1[ ])
{
*x-=5;
strcpy (s1 ,"ABCD");
}
A)arg.a=22,arg.s=ABCD
B)arg.a=27,arg.s=abcd
C)arg.a=22,arg.s=abcd
D)arg.a=27,arg.s=ABCD。