关于C语言的题不会做,请会做的大大们帮帮忙..谢谢.!
1.在C语言中,变量所分配的内存空间大小A.均为一个字节B.由用户自己定义C.由变量的类型决定D.是任意的2.下列哪些为C语言中合法的字符常数:A.‘AB\0’B.‘0’...
1. 在C语言中,变量所分配的内存空间大小
A. 均为一个字节
B. 由用户自己定义
C. 由变量的类型决定
D. 是任意的
2. 下列哪些为C语言中合法的字符常数:
A. ‘AB\0’
B. ‘0’
C. “C Language”
D. ‘AB’
3. 在循环结构的循环体中执行break语句,其作用是:
A. 结束本次循环,进行下次循环
B. 继续执行break语句之后的循环体中各语句
C. 跳出该循环体,提前结束循环
D. 终止程序运行
4. 已定义char x[8]; int i;为了给x数组赋值,以下正确的语句是:
A. x[8]=”Turbo C”;
B. x=”Turbo C”;
C. x[]=”Turbo C”;
D. for(i=0; i<7; i++) x[i]=getchar();
5. 设int a[][4]={0, 0};则以下正确的描述是:
A. 数组a的每个元素都可得到初值0
B. 二维数组a的第一维大小为2
C. 数组a的行数为4
D. 只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0
6. 表达式3/5的值为:
A. 0
B. 0.6
C. 0.600000
D. 1
7. 下面关于函数的描述中,正确的是:
A. 每个函数都必须要有return语句,返回一个返回值
B. 每个函数中只可能有一个return语句
C. 如果一个函数有两个以上的return语句,它们必须全部被执行到
D. 如果函数没有返回值,可以不要return语句
8. 若已定义变量int x; 以下哪个表达式可以正确判断x的取值是在大于等于2小于等于15之间:
A. 2≤x≤15
B. 2≤x and x≤15
C. 2≤x && x≤15
D. x>=2 && x<=15
9. 若已定义变量char *p, array[]=”C Language”; 要想使指针p指向数组array, 以下哪个语句是正确的:
A. p = *array;
B. p = &array[0];
C. p = ”C Language”;
D. array = p;
10. 以下正确的描述是:
A. 在函数外部定义的变量是局部变量
B. 在函数内部定义的变量是全局变量
C. 函数的形参是局部变量
D. 局部变量不能与全局变量同名
11. 下面程序的运行结果是:
int j=1, k=0,m;
m=( ++j) + (k++);
printf (“%d,%d,%d”, ++m, j++, ++k);
A. 2, 2,1
B. 2, 2, 2
C. 3, 2,2
D. 3, 2, 1
12. 下面程序段的运行结果是:
int a= 2,b=2;
a+=b/=a*=3;
printf (“%d” , a) ;
A. 8.3
B. 6.3
C. 6
D. 8
13. 下面程序的运行结果是:
int flag=1;
void fun( int n)
{ int k ;
for ( k=2;k<=n-1&&flag;k++)
if (n%k= = 0) flag = 0 ; }
void main ()
{ fun (34);
printf (“%d”, flag); }
A. 0
B. -1
C. 2
D. 1
14. 下面程序的运行结果是:
char name[3][20]={“Tea”, “Join”, “May”};
int m=0 ,k;
for (k=1;k<=2;k++)
if(strcmp (name [k],name[m])>0) m=k;
puts ( name[m]);
A. Join
B. Join May
C. May
D. Tea
15. 下面程序的运行结果是:
char str[20]=”This is my book”;
str[4]=’\0’; str[9]=’\0’;
printf (“%d”,strlen (str));
A. 15
B. 5
C. 3
D. 4 展开
A. 均为一个字节
B. 由用户自己定义
C. 由变量的类型决定
D. 是任意的
2. 下列哪些为C语言中合法的字符常数:
A. ‘AB\0’
B. ‘0’
C. “C Language”
D. ‘AB’
3. 在循环结构的循环体中执行break语句,其作用是:
A. 结束本次循环,进行下次循环
B. 继续执行break语句之后的循环体中各语句
C. 跳出该循环体,提前结束循环
D. 终止程序运行
4. 已定义char x[8]; int i;为了给x数组赋值,以下正确的语句是:
A. x[8]=”Turbo C”;
B. x=”Turbo C”;
C. x[]=”Turbo C”;
D. for(i=0; i<7; i++) x[i]=getchar();
5. 设int a[][4]={0, 0};则以下正确的描述是:
A. 数组a的每个元素都可得到初值0
B. 二维数组a的第一维大小为2
C. 数组a的行数为4
D. 只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0
6. 表达式3/5的值为:
A. 0
B. 0.6
C. 0.600000
D. 1
7. 下面关于函数的描述中,正确的是:
A. 每个函数都必须要有return语句,返回一个返回值
B. 每个函数中只可能有一个return语句
C. 如果一个函数有两个以上的return语句,它们必须全部被执行到
D. 如果函数没有返回值,可以不要return语句
8. 若已定义变量int x; 以下哪个表达式可以正确判断x的取值是在大于等于2小于等于15之间:
A. 2≤x≤15
B. 2≤x and x≤15
C. 2≤x && x≤15
D. x>=2 && x<=15
9. 若已定义变量char *p, array[]=”C Language”; 要想使指针p指向数组array, 以下哪个语句是正确的:
A. p = *array;
B. p = &array[0];
C. p = ”C Language”;
D. array = p;
10. 以下正确的描述是:
A. 在函数外部定义的变量是局部变量
B. 在函数内部定义的变量是全局变量
C. 函数的形参是局部变量
D. 局部变量不能与全局变量同名
11. 下面程序的运行结果是:
int j=1, k=0,m;
m=( ++j) + (k++);
printf (“%d,%d,%d”, ++m, j++, ++k);
A. 2, 2,1
B. 2, 2, 2
C. 3, 2,2
D. 3, 2, 1
12. 下面程序段的运行结果是:
int a= 2,b=2;
a+=b/=a*=3;
printf (“%d” , a) ;
A. 8.3
B. 6.3
C. 6
D. 8
13. 下面程序的运行结果是:
int flag=1;
void fun( int n)
{ int k ;
for ( k=2;k<=n-1&&flag;k++)
if (n%k= = 0) flag = 0 ; }
void main ()
{ fun (34);
printf (“%d”, flag); }
A. 0
B. -1
C. 2
D. 1
14. 下面程序的运行结果是:
char name[3][20]={“Tea”, “Join”, “May”};
int m=0 ,k;
for (k=1;k<=2;k++)
if(strcmp (name [k],name[m])>0) m=k;
puts ( name[m]);
A. Join
B. Join May
C. May
D. Tea
15. 下面程序的运行结果是:
char str[20]=”This is my book”;
str[4]=’\0’; str[9]=’\0’;
printf (“%d”,strlen (str));
A. 15
B. 5
C. 3
D. 4 展开
展开全部
1.C 是按照变量的类型来分配的,象int型变量分配两个内存单元,char型变量分配一个内存单元。
2.B 字符常量是用单引号括起来的一个字符,除了普通的字符常量还有一种字符常量是以\开头的例如‘\n’这个转义字符,作用是换行。至于具体的各类转义字符你慢慢学习吧。
3.C break的作用就是彻彻底底地结束该循环,不管下面还有没有语句。而continue的作用是将该层循环结束,继续判断循环条件是否成立,再进行循环。
4.D 对于数组中各元素的附值必须要用循环方式,一个一个地进行附值。对于静态存储的数组可以在定义时进行初始化,此时就不需要一个个地附值了。但定义以后若要对各元素附值则,必须用循环。
5.A 这题就是定义一个整型数组并初始化,可以省略第一维的大小,该题目实际上数组相当于a[1][4],是个1行4列的数组,其内部的值都是0,因为初始化时没写的部分自动为0。
6.A 因为3和5都是整型数据,他们运算的结果也是整数类型,即0。关于不同类型数据运算有什么方法,请看最后,我对此作的补充。
7.D 一个函数可以没有return语句,比如有些void型函数,这种函数就指定不返回值到代入处。故A选项错误;一个函数可以有两个return语句,比如有时候需要判断哪个值被传回去时,用if() return();else return();但必须只有一个,因为函数只能返回一个值给代入处。故此B,C都是错误的。
8.D 很简单因为C语言的关系运算符没有A,B,C里面》《的。
9.B 要使一个指针指向对应类型的数组,就是将数组的首地址附给该指针,而数组首地址有两种表示法,一个是该数组名,另一个是该数组第一个元素的地址,也就是下面两种方法:<1> p=a;<2>p=&a[0];
10.C 形参就是局部变量。这方面内容也算比较多,不一一叙说了。
11.C m=(++j)+(k++);运行后i值变为2参与运算,k值仍为0参与运算,运算结束后k值变为1,故m的值为2。printf("%d,%d,%d",++m, j++, ++k);就是将m值自加一输出;将j值输出,输出后自加1,此处知不知道j最终值没关系;将k值自加1输出。故而输出3,2,2
12.C 对于a+=b/=a*=3; 我们要知道运算顺序,是从右向左,就是先将a*3的值附给a,此时a的值是6;再用b/a的值附给b也就是0,最后用a+b的值附给a这就是该表达式的结果即6。
13.A flag是个全局变量,按照程序运行推出,把34作为实参导入fun()函数后,执行语句k=2;且k<=n-1&&flag为真,故此运行if (n%k= = 0) flag = 0 ; } 而if成立,flag值变为0,k++后继续判断k<=n-1&&flag结果为假,结束循环,但此时flag的值就是0。
14.D 该题就是输出3个字符串中最大的那个字符串。
15.D 由于str[4]=’\0’导致若要将该数组按字符串输出时只输出到第一个'\0'结束,而strlen()也一样。
补充关于不同数据类型算术运算的方法:
进行算术运算的数据类型一般为:整型(int),长整型(long),短整型(short),字符型(char),实型<实型又分单精度实型(float)双精度实型(double)>
1.当运算双方是同类型的话,那么结果也是一样的类型,比如如果都为整型(int),那么结果也是整型 例:2/4=0;7/2=3;-5/3=-1 采取向0取整的原则。如果双方是float型,那么结果也是float型(小数部位是7个有效数字)
2.当运算双方不是同类型的话,那么机器就会自动地进行类型转换
double<---float
|
long
|
unsigned
|
int<---char,short
横向向左的箭头是必定转换的,如果数据类型是char的话必须先转换为int型,对于纵向的越往上级别越高,也就是两个数据间低等级的类型要先转化到那个高等级的数据类型,然后再进行计算,当然结果也就是那个高等级数据类型的形式.
3.还有种强制转化计算的方式,就是为了得到自己想要的数据类型,而将一个不符合标准的数据类型进行强制转换,比如float型的数据不能进行求余运算,所以必须要将他强制转化为int型方可运算,否则出错.例:float a=4.3;(int)a%2=1;
2.B 字符常量是用单引号括起来的一个字符,除了普通的字符常量还有一种字符常量是以\开头的例如‘\n’这个转义字符,作用是换行。至于具体的各类转义字符你慢慢学习吧。
3.C break的作用就是彻彻底底地结束该循环,不管下面还有没有语句。而continue的作用是将该层循环结束,继续判断循环条件是否成立,再进行循环。
4.D 对于数组中各元素的附值必须要用循环方式,一个一个地进行附值。对于静态存储的数组可以在定义时进行初始化,此时就不需要一个个地附值了。但定义以后若要对各元素附值则,必须用循环。
5.A 这题就是定义一个整型数组并初始化,可以省略第一维的大小,该题目实际上数组相当于a[1][4],是个1行4列的数组,其内部的值都是0,因为初始化时没写的部分自动为0。
6.A 因为3和5都是整型数据,他们运算的结果也是整数类型,即0。关于不同类型数据运算有什么方法,请看最后,我对此作的补充。
7.D 一个函数可以没有return语句,比如有些void型函数,这种函数就指定不返回值到代入处。故A选项错误;一个函数可以有两个return语句,比如有时候需要判断哪个值被传回去时,用if() return();else return();但必须只有一个,因为函数只能返回一个值给代入处。故此B,C都是错误的。
8.D 很简单因为C语言的关系运算符没有A,B,C里面》《的。
9.B 要使一个指针指向对应类型的数组,就是将数组的首地址附给该指针,而数组首地址有两种表示法,一个是该数组名,另一个是该数组第一个元素的地址,也就是下面两种方法:<1> p=a;<2>p=&a[0];
10.C 形参就是局部变量。这方面内容也算比较多,不一一叙说了。
11.C m=(++j)+(k++);运行后i值变为2参与运算,k值仍为0参与运算,运算结束后k值变为1,故m的值为2。printf("%d,%d,%d",++m, j++, ++k);就是将m值自加一输出;将j值输出,输出后自加1,此处知不知道j最终值没关系;将k值自加1输出。故而输出3,2,2
12.C 对于a+=b/=a*=3; 我们要知道运算顺序,是从右向左,就是先将a*3的值附给a,此时a的值是6;再用b/a的值附给b也就是0,最后用a+b的值附给a这就是该表达式的结果即6。
13.A flag是个全局变量,按照程序运行推出,把34作为实参导入fun()函数后,执行语句k=2;且k<=n-1&&flag为真,故此运行if (n%k= = 0) flag = 0 ; } 而if成立,flag值变为0,k++后继续判断k<=n-1&&flag结果为假,结束循环,但此时flag的值就是0。
14.D 该题就是输出3个字符串中最大的那个字符串。
15.D 由于str[4]=’\0’导致若要将该数组按字符串输出时只输出到第一个'\0'结束,而strlen()也一样。
补充关于不同数据类型算术运算的方法:
进行算术运算的数据类型一般为:整型(int),长整型(long),短整型(short),字符型(char),实型<实型又分单精度实型(float)双精度实型(double)>
1.当运算双方是同类型的话,那么结果也是一样的类型,比如如果都为整型(int),那么结果也是整型 例:2/4=0;7/2=3;-5/3=-1 采取向0取整的原则。如果双方是float型,那么结果也是float型(小数部位是7个有效数字)
2.当运算双方不是同类型的话,那么机器就会自动地进行类型转换
double<---float
|
long
|
unsigned
|
int<---char,short
横向向左的箭头是必定转换的,如果数据类型是char的话必须先转换为int型,对于纵向的越往上级别越高,也就是两个数据间低等级的类型要先转化到那个高等级的数据类型,然后再进行计算,当然结果也就是那个高等级数据类型的形式.
3.还有种强制转化计算的方式,就是为了得到自己想要的数据类型,而将一个不符合标准的数据类型进行强制转换,比如float型的数据不能进行求余运算,所以必须要将他强制转化为int型方可运算,否则出错.例:float a=4.3;(int)a%2=1;
展开全部
1C
2,B
3,C
4,D
5,D
6,A
7,D
8,D
9,B
10,C
11,C
12 C
13,A
14,D
15,D
个人答案加楼上诸多人之参考
2,B
3,C
4,D
5,D
6,A
7,D
8,D
9,B
10,C
11,C
12 C
13,A
14,D
15,D
个人答案加楼上诸多人之参考
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.c
2.b
3.c
4.b
5.d
6.a
7.d
8.d
9.b
10.d
11.c
12.c
13.a
14.d
15.d
2.b
3.c
4.b
5.d
6.a
7.d
8.d
9.b
10.d
11.c
12.c
13.a
14.d
15.d
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
保证质量!!
1,c
2,b
3,c
4,d
5,d
6,a
7,d
8,d
9,b
10,c
11,c
12,c
13,a
14,d
15,d
1,c
2,b
3,c
4,d
5,d
6,a
7,d
8,d
9,b
10,c
11,c
12,c
13,a
14,d
15,d
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
晕~~
1。C
2。D
3。C
4。A
5。B
6。A
7。D
8。D
9。C
10。D
11。C
12。C
13。A
14。不清楚了
15。D
1。C
2。D
3。C
4。A
5。B
6。A
7。D
8。D
9。C
10。D
11。C
12。C
13。A
14。不清楚了
15。D
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询