admin 管理员组文章数量: 1086019
2024年2月27日发(作者:switch会员有什么用)
C语言练习一2020
在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。
提示:既包含全部26个大写字母,也包含对应的小写字母,但大、小写字母为各自不同的字符,对应不同的ASCII编码。
正确的答案是“对”。
在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符
提示:在C语言中只要字符的ASCII码不同,则认为是不同的字符。同一字母的大、小写具有不同的ASCII码,所以为不同的字符。
正确的答案是“对”。
在C语言程序中, ABC和abc被作为同一标识符使用
提示:ABC和abc这两个标识符虽然在不区分大、小写的情况下是相同的,但若区分大、小写则是不同的,而在C语言中规定,字母是区分大、小写的,所以它们是完全不同的标识符。
正确的答案是“错”。
1.C语言中的循环类语句有3条,它们是( for,while,do )。
正确答案是:for,while,do
2.C语言中的跳转类语句有四条,它们是goto,return和(
正确答案是:break,continue
3.当不需要函数返回任何值时,则所使用的返回类型为(
正确答案是:void
4.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和(
参数表 )。
正确答案是:参数表
5.在一个程序文件的开始,若需要使用一个包含命令包含一个头文件时,则命令标识符为(
正确答案是:#include
6.在#include预处理命令中,不可以包含(
目标文件 )。
正确答案是:目标文件
7.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据占用的字符位置个数为( 6 )。
正确答案是:6
8.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其小数部分占用的字符位置个数为( 2 )。
正确答案是:2
9.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其整数部分占用的字符位置个数为( 3 )。
正确答案是:3
10.在scanf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输入的数据类型为(
正确答案是:float
11.在scanf()函数调用的格式字符串中,若使用格式符为“%Lf”,则对应输入的数据类型为(
正确答案是:double
12.每个C程序文件在编译时可能出现有严重性错误,其对应的标识符号为(
正确答案是:error
13.在VC++环境下,为运行一个程序而建立的工作区文件的扩展名为(
正确答案是:dsw
二、判断题
1.在C语言中,作为标识符的第一个字符可以是英文字母、数字或下划线字符。
正确的答案是“错”。
题目15
break,continue
void )。
)。
#include )。
float )。
double )。
error
)。
)。
dsw
2.在C语言中,标识符中的非首字符可以是英文字母、数字或下划线字符。
正确的答案是“对”。
3.当需要在程序文件中引入用户定义的头文件时,使用的不是#include命令。
正确的答案是“错”。
4.使用#include命令只能包含头文件,不能包含其他任何文件。
正确的答案是“错”。
5.注释语句的内容只会出现在源程序文件中,不会出现在编译后而生成的目标代码文件中。
正确的答案是“对”。
6.一条注释语句的最后必须使用分号结束。
正确的答案是“错”。
7.源程序文件被编译成目标文件后,其目标文件中也存在有对应的注释内容。
正确的答案是“错”。
8.源程序文件被编译成目标文件后,源程序文件中的注释语句仍然存在。
正确的答案是“对”。
9.在一条注释语句中,除了注释内容外,不需要使用任何特定的标记符。
正确的答案是“错”。
10.多行注释语句的开始和结束标记符可以互换使用。
正确的答案是“错”。
11.在执行“printf("%5d",x);”语句时,其输出的x的值所占用的显示宽度将大于等于5个字符位置。
正确的答案是“对”。
12.在执行“printf("%6d",x);”语句时,其输出的x的值所占用的显示宽度将小于6个字符位置。
正确的答案是“错”。
13.在执行“printf("%8.2f",x);”语句时,其输出的x的值所占用的显示宽度将大于等于8个字符位置。
正确的答案是“错”。
14.在“scanf("%d %d",&x,&y);”语句中,x和y变量均为整数类型。
正确的答案是“对”。
15.在“scanf("%s",x);”语句中,x变量不是字符指针类型。
正确的答案是“错”。
16.在“scanf("%d-%d=%d",&x,&y,&z);”语句中,有语法错误。
正确的答案是“错”。
17.在C语言程序上机操作的过程中,连接程序的操作步骤之前是编译程序。
正确的答案是“对”。
18.在C语言程序上机操作的过程中,需要对每个用户头文件进行单独的编译操作。
正确的答案是“错”。
19.在C语言程序上机操作的过程中,不能够对用户头文件进行单独的编译操作。
正确的答案是“对”。
C语言练习二2020
int类型的长度为( 4 )。
正确答案是:4
常数-4.25的数据类型为( )。
正确答案是:双精度型
一个有符号字符类型的值域范围是( )。
正确答案是:-128到+127
题目4
字符串"Its40n"的长度为( )。
正确答案是:5
实数340.25对应的规格化浮点数为( )。
正确答案是:3.4025e2
题目6
要利用const保留字定义整型常量ABC的值为10,则对应的定义语句为( )。
正确答案是:const int ABC=10;
题目7
要利用#define命令定义ABC常量的值为100,则对应的命令格式为( )。
正确答案是:#define ABC==100
题目8
下列数值中最大值是( )。
正确答案是:28%8
在下面运算符中,优先级最高的是( )。
正确答案是:!
设有语句序列为“int a=12; a+=a*a;”,则执行结束后,a的值为( )。
正确答案是:156
在C语言中,用于比较大小的关系运算符的总数为( )。
正确答案是:6
题目12
x>0 && y<=5的相反表达式为( )。
正确答案是:x<=0 || y>5
题目13
假定x是一个逻辑量,则(x && !x)和(x || !x)的值分别为( )。
正确答案是:0和1
题目14
假定x=4.6,则函数ceil(x)的值为( )。
正确答案是:5.0
表达式floor(2.3457*100+0.5)/100的值为( )。
正确答案是:2.35
二、判断题(每题4分,共52分)
题目16
常数3.26e4是双精度浮点数。
正确的答案是“对”。
题目17
浮点数只有单精度表示,没有双精度表示。
正确的答案是“错”。
题目18
定点数包括单精度定点数和双精度定点数两种。
正确的答案是“对”。
题目19
定义符号常量只有一种方法,就是采用预处理命令#define的方法。
正确的答案是“错”。
题目20
使用const语句定义一个符号常量时,则必须对它同时进行初始化。
正确的答案是“对”。
题目21
在一条变量定义语句中,定义的变量和赋给它的初值之间只能使用等号(=)。
正确的答案是“对”。
题目22
假定x=5,则表达式2+x++的值为7。
正确的答案是“对”。
题目23
表达式(int)14.6%5的值为0。
正确的答案是“错”。
题目24
表达式x=x+1表示成增量表达式为x++。
反馈
正确的答案是“错”。
题目25
假定x=5,则执行“a=(x?10:20);”语句后a的值为10。
正确的答案是“对”。
题目26
逻辑表达式(a>b || b==5)的相反表达式为(a>b && b==5)。
正确的答案是“错”。
题目27
在C语言中,求一个整数的绝对值的数学函数为abs(x)。
正确的答案是“对”。
题目28
在C语言中,退出程序运行的系统函数为exit()。
正确的答案是“对”。
C语言练习三2020
一、单项选择题
若x的值为15,则执行“if(x>10) x++; else x--;”语句后,x的值为( )。
正确答案是:16
题目2
若x的值为-10,则执行“if(!x) x++; else x--;”语句后,x的值为( )。
正确答案是:-11
题目3
若x的值为10,则执行“switch(x%3){case
0: x++; case 1:x++; case 2: x++;}”语句后,x的值为( )。
正确答案是:12
题目4
若x的值为10,则执行“switch(x%3){case
0: x++; break; case 1:x++; default: x++;}”语句后,x的值为( )。
正确答案是:12
题目5
若n的值为10,则执行“for(i=1;
i 正确答案是:1 题目6 若n的值为10,则执行“for(i=0; ; i++) if(i>n/3) break;”语句后,i的值为( )。 正确答案是:4 题目7 若n的值为10,则执行“for(i=1; i 正确答案是:n-1 题目8 若n的值为10,则执行“for(i=0; i 正确答案是:n(n+1)/2 题目9 若n的值为10,则执行“while(n-->0) s+=n;”语句的过程中,循环体被执行的次数为( )。 正确答案是:10 题目10 若n的值为5,s的值为0,则执行“while(n-->0) s+=n;”语句后,s的值为( )。 正确答案是:10 题目11 在下列的语句中,必须以分号作为结束的语句是( )。 正确答案是:do 题目12 若n的值为5,s的值为0,则执行“do s+=n--; while(n>0);”语句后,s的值为( )。 正确答案是:15 题目13 要结束任一种循环语句或switch语句的执行,则在其中使用的语句为( )。 正确答案是:break 二、判断题 题目14 在if语句中,必须带有else子句,不能省略它。 正确的答案是“错”。 题目15 在for循环语句的头部,for后面括号内共有3个表达式位置。 正确的答案是“对”。 题目16 for循环语句不能够被转换为while循环语句。 正确的答案是“错”。 题目17 while循环语句中的循环体可能不会被执行。 正确的答案是“对”。 题目18 while循环语句的循环体,只能是复合语句,不能是简单语句。 正确的答案是“错”。 题目19 do-while循环语句中的循环体可能不会被执行。 正确的答案是“错”。 题目20 do-while循环语句的循环体,只能是复合语句,不能是简单语句。 正确的答案是“错”。 题目21 do-while循环语句是以循环体结尾的。 正确的答案是“错”。 题目22 break语句可以使用在switch语句中。 正确的答案是“对”。 题目23 return语句中可以带有返回表达式。 正确的答案是“对”。 题目24 continue只能使用在任一种循环语句的循环体中。 正确的答案是“对”。 三、程序填空题 题目25 #include void main() { int a=5,b=8,c=6,d=15,x,y; if(a>=b) x=a; else x=b; if(c>=d) y=c; else y=d; if(x>=y) printf("%dn",x); else printf("%dn",y); } 答案:正确答案是:15 题目26 #include void main() { int x=5,y=8,z=12; if(x>y && x>z) printf("%dn",x); else if(y>x && y>z) printf("%dn",y); else printf("%dn",z); } 答案:正确答案是:12 题目27 #include void main() { int a=5,b=8,c; if(3*a>2*b) c=2*a+3*b; else if(a==b) c=a*a+b*b; else c=a*b+3; printf("c=%dn",c); } 答案:正确答案是:c=43 题目28 #include void main() { int x=5,y=0; switch(2*x-3) { case 4: y+=x; case 7: y+=2*x+1; case 10: y+=3*x; } printf("y=%dn",y); } 答案:正确答案是:y=26 题目29 #include void main() { char ch; int a,b,c; scanf("%c",&ch); scanf("%d %d",&a,&b); switch(ch) { case '+': c=a+b; break; case '-': c=a-b; break; case '*': c=a*b; break; case '/': c=a/b; break; default: printf("Error!n"); } printf("%d%c%d=%dn",a,ch,b,c); } 答案:正确答案是:3 5=15 题目30 #include void main() { int i,s=0; for(i=16; i>0; i-=2) if(i%3==0 || i%4==0) s+=i; printf("s=%dn",s); } 答案:正确答案是:s=46 题目31 #include void main() { int i,x,y,s=0; scanf("%d %d",&x,&y); if(x>y) {i=x; x=y; y=i;} for(i=x; i<=y; i++) if(i%2==1) s+=i*i; printf("s=%dn",s); } 答案:正确答案是:奇数 题目32 #include const int N=100; void main() { int a,b; for(a=2; a<=N; a++) { for(b=2; b*b<=a; b++) if(a%b==0) break; if(b*b>a) printf("%d ",a); } } 答案:正确答案是:素数(质数) 题目33 #include void main() { int i=0, s=0; while(s<50) {i+=2; s+=i*i;} printf("s=%dn",s); } 答案:正确答案是:s=56 题目34 #include void main() { int x,p=2; scanf("%d",&x); while(x>=p) if(x%p==0) {printf("%d=%d*%dn",x,p,x/p); break;} else p++; } 答案:正确答案是:35=5 7 题目35 #include void main() { int x,y,a,p=1; scanf("%d %d",&x,&y); if(x if(x%y==0) {printf("%dn", y); return;} a=2; while(y>=a) if(x%a==0 && y%a==0) {x=x/a; y=y/a; p*=a;} else a++; printf("%dn",p); } 答案: 正确答案是:公约数 题目36 #include void main() { int x=36,y=48,z; do {z=x%y; x=y; y=z;} while(y>0); printf("x=%dn",x); } 答案:正确答案是:x=12 题目37 #include void main() { int x,i=0,s=0; scanf("%d",&x); do {i+=2; s+=i*i;}while(s printf("n=%dn",i-2); } 答案:正确答案是:最大 题目38 #include void main() { int x=37,k=2; do {if(x%k==0) break; k++;} while(k*k<=x); if(k*k>x) printf("Yes!n"); else printf("No!n"); } 答案:正确答案是:Yes! C语言练习四2020 一、单项选择题 题目1 假定有一个元素类型为int的数组a[10],它所占用的存储空间的字节数为( )。 正确答案是:40 题目2 假定一维数组的定义为“char* a[8];”,则该数组所占用的存储空间的字节数为( )。 正确答案是:32 题目3 假定有一个定义语句为“int a[10]={3,4,2,8,6};”,则元素a[5]的值为( )。 正确答案是:0 题目4 在下面的一维数组定义语句中,有语法错误的是( )。 正确答案是:int a[]; 题目5 假定二维数组的定义语句为“int a[3][5];”,则该数组所含元素的个数为( )。 正确答案是:15 题目6 假定有一个定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为( )。 正确答案是:6 题目7 对于一个长度为n的字符串,保存它至少需要占用的存储字节数为( )。 正确答案是:n+1 题目8 对于一个二维字符数组a[M][N],存储每个字符串的长度至多为( )。 正确答案是:N-1 题目9 若需要比较两个字符串的大小,则选用的函数是( )。 正确答案是:strcmp 二、判断题 题目10 一维数组元素带有两个下标。 正确的答案是“错”。 题目11 对于二维数组元素,数组名后使用两对中括号。 正确的答案是“对”。 题目12 在一维数组的定义语句中,给数组赋初值的部分是用一对花括号括起来的数据表。 正确的答案是“对”。 题目13 在一维数组的定义语句中,数组名前为元素类型关键字。 正确的答案是“对”。 题目14 在二维数组的定义语句中,数组名后带有两对圆括号。 正确的答案是“错”。 题目15 假定二维数组的定义语句为“double a[M][N];”,则每个数组元素的列下标取值范围在1~N之间。 正确的答案是“错”。 题目16 使用“typedef char BB[10];”语句定义标识符BB为含有10个元素的一维字符数组。 正确的答案是“错”。 题目17 使用“typedef char BB[10][50];”语句定义标识符BB为含有10行50列共500个元素的二维字符数组类型。 正确的答案是“对”。 题目18 一个二维字符数组a[10][20]中存储每个字符串的最大长度为19。 正确的答案是“对”。 三、程序填空题 题目19 #include void main() { int a[8]={10,8,6,15,9,21,8,16}; int i,x=a[0]; for(i=1;i<8;i++) if(a[i]>x) x=a[i]; printf("x=%dn",x); } 答案:正确答案是:x=21 题目20 #include void main() { int a[8]={12,15,20,8,5,9,16,10}; int i,s[3]={0}; for(i=0; i<8; i++) s[a[i]%3]+=a[i]; printf("%d %d %dn",s[0],s[1],s[2]); } 答案:正确答案是:36 26 33 题目21 #include void main() { int a[3][3]={{3,8,6},{5,9,2},{8,5,12}}; int i,j,b[3]={0}; for(i=0;i<3;i++) for(j=0;j<3;j++) b[j]+=a[i][j]; for(j=0; j<3; j++) printf("%d ",b[j]); } 答案:正确答案是:16 22 20 题目22 #include void main() { int a[3][4]={{60,75,83,52},{76,94,88,35},{80,74,46,90}}; int i,j,x=a[0][0],y=-1; for(i=0; i<3; i++) for(j=0; j<4; j++) if(a[i][j]>x) {y=x; x=a[i][j];} else if(a[i][j]>y) y=a[i][j]; printf("%d %dn",x,y); } 答案:正确答案是:94 90 #include #include void main() { char a[10],b[10],c[10]; int c1,c2,c3; scanf("%s %s %s",a,b,c); c1=strlen(a); c2=strlen(b); c3=strlen(c); if(c1>c2 && c1>c3) printf("%s ",a); else if(c2>c1 && c2>c3) printf("%s ",b); else printf("%s ",c); } 答案:正确答案是:xucong 题目24 #include void main() { char a[]="abcdbfbgacd"; int i=0,i1=0,i2=0,i3=0; for(i=0; a[i]!='0'; i++) { switch(a[i]) { case 'a': i1++; break; case 'b': i2++; break; case 'c': i3++; break; } } printf("%d %d %d %dn",i1,i2,i3,i); } 答案:正确答案是:2 11 题目25 #include void main() { char a[]="356"; int i,c[7]={0}; for(i=0; a[i]!='0'; i++) c[a[i]-48]++; //48为数字字符0的ASCII码 for(i=1; i<7; i++) printf("%d ",c[i]); } 答案:正确答案是:4 C语言练习五2020 题目1 一个指针指向一个数据对象,它保存着该数据对象的地址,若数据对象为DataType类型,则该指针的类型为( )。 正确答案是:DataType* 题目2 NULL是一个符号常量,通常作为空指针值,它的取值为( )。 正确答案是:0 题目3 若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为( )。 正确答案是:(char*)p 题目4 若要定义整型指针p并初始指向x,则所使用的定义语句为( )。 正确答案是:int *p=&x; 题目5 假定p所指对象的值为25,p+1所指对象的值为42,则表达式*p++的值为( )。 正确答案是:25 题目6 假定p是一个指针变量,则该变量的地址表示为( )。 正确答案是:&p 题目7 已知“char *s="Hello world!";”,要使变量p指向s所指向的同一个字符串,则p应定义为( )。 正确答案是:char *p=s; 题目8 假定a为一个数组名,则下面表达式中错误的是( )。 正确答案是:*a++ 题目9 已知“char b[10]=”12345”, *p=b;”,则*(p+2)的值为( )。 正确答案是:'3' 题目10 已知“int a[6][5];”,则元素a[2][4]的地址比该数组的首地址大( )。 选择一项: 正确答案是:56题目11 个字节 要使p指向二维整型数组a[10][20],p应定义为( )。 正确答案是:int(*p)[20]=a; 题目12 执行“int *p=malloc(sizeof(double)*2);”语句后得到的动态存储空间的字节数为( )。 正确答案是:16 题目13 利用动态存储分配创建具有10个字节的一维数组空间的正确语句是( )。 正确答案是:char *p=malloc(10); 二、判断题 在定义指针变量的语句中,对指针变量不允许赋初值。 正确的答案是“错”。 题目15 在定义指针变量的语句“int *p,pp;”中,p和pp具有相同的数据类型。 正确的答案是“错”。 题目16 在语句“typedef int* inPointer;”中,把标识符inPointer定义为int*类型。 正确的答案是“对”。 题目17 假定a是一个一维数组,则a+i的值与&a[i]的值相等。 正确的答案是“对”。 题目18 已知“int a[10], *p=a;”,则进行*p++运算是不允许的。 正确的答案是“错”。 题目19 假定a是一个二维数组,则表达式*(a[j]+i)所对应的元素为a[i][j]。 正确的答案是“错”。 题目20 假定a是一个二维数组,则数组名a的值和a[0]的值相等。 正确的答案是“对”。 题目21 进行动态存储分配的calloc()函数带有一个参数。 正确的答案是“错”。 题目22 用于释放动态存储空间的函数为free,调研它需要带有一个参数。 正确的答案是“对”。 题目23 假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i个字节。 正确的答案是“对”。 三、程序填空题 题目24 执行下面程序的输出结果为回答正确答案是:80 题目25 。 #include void main() { int a[8]; int s1=0,s2=0,*p; printf("请输入8个整数:"); for(p=a; p
版权声明:本文标题:C语言2020 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1708996572a536352.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论