❶ c语言练习题----求答案解
我回答了
二、单项选择题(每小题2分,共40分)
1、表达式2,4,6,8的值为(D )
A.2 B.4 C.6 D.8
2、设有int i;则表达式(i=1,i=10)?i++||++i:++i的值为 (A ) A.1 B.2 C.3 D.10
3、设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是 ( B) A.10,11,12 B.11,12,12 C.10,12,12 D.11,11,12
4、在C语言程序中,下面哪一个是正确的? (B )
A 函数的定义可以嵌套,但函数的调用不可以嵌套。
B 函数的定义不可以嵌套,但函数的调用可以嵌套。
C 函数的定义可以嵌套,函数的调用也可以嵌套。
D 函数的定义和函数的调用都不可以嵌套。
5、设有说明int s[2]={0,1},*p=s; 则下列错误的C语句是 (A ) A.s+=1; B.p+=1; C.*p++; D.(*P)++;
6、若有以下说明和语句,则输出结果是 (C)
char str[]=”\”d:\\file.dat\””;
printf(“%s”,str);
A 字符串中有非法字符 B \”d:\\file.dat\”
C “d:\file.dat” D “d:\\file.dat”
7、程序要正确的运行,必须要有 (C )
A printf 函数 B 自定义函数 C main函数 D 不需要函数
8、已知整型变量a=6,字符型变量ch=’A’,(大写字母A的ASCII码为65),则表达式 ch+a的值是 (B)
A 69 B 71 C 4 D 出错
9、下面程序运行后,屏幕上显示 (D )
void main()
{
int a=4;float b=9.5;
printf(“a=%d,b=%6.4f”,a,b);
}
A a=%d,b=%f\n B a=%d,b=%f C a=4,b= 9.50 D a=4,b=9.5000
10、若i=2,则语句printf(“%d,%d”,i, ++i);的输出结果是 (C)
A 2,2 B 3,3 C 2,3 D 3,2
11、int a=2,b=8;则在表达式a<b&&b=20后a,b的值分别为:(C )
A 2,8 B 2,10 C 2,20 D 2,6
12、若x=3,则语句:while(x){x--;continue;}的循环次数为 (D )
A 0 B 1 C 2 D 3
13、如果要把常量300存入变量a中,a不可以定义成哪个类型?( B)
A int B char C long D float
14、有输入语句scanf(“a:%d,b:%d”,&a,&b);输入数据时应怎样输入。(D )
A 4 5 B 4,5 C a=4,b=5 D a:4,b:5
15、设a为整形变量,不能正确表达数学关系:10<a<15 的C语言表达式是(A )
A) 10<a<15 B) a==11||a==12||a==13||a==14
C) a>10&&a<15 D) !(a<=10)&&!(a>=15)
16、下列变量中,哪个属于构造类型的变量。(D )
A 整型变量 B 实型变量 C 字符型变量 D 结构体类型变量
17、下面的命令中哪一个不属于预处理命令。(B )
A #define max 20 B #include <stdio.h>
C #ifdef MM D typedef a int;
18、C程序的结构有哪些类。(多选)( ABD)
A 选择结构 B 循环结构 C 程序结构 D 顺序结构
19、循环结构有哪些类。(多选) ( ACD)
A for结构 B if结构 C while结构 D do…while结构
20、若x=4,y=2,a=3,则表达式x=(y==a)执行完后,x的值是 (A )
A 0 B 1 C 3 D 4
❷ 求C语言练习题答案
二、填空题
1. ___变量__是指在程序运行过程中,值可以发生变化的量。
2.C语言是一种____区分_(区分/不区分)字母大小写的语言,Password和password在C语言中是两个___不同__(相同/不同)的标识符。
3.下面的转义字符分别表示:
’\b’__退格___,’\n’__换行___,’\t’__水平制表___,’\”’ __双引号字符“"”___
4.下面常量的类型分别为:
1.5E12__浮点型___,1288L _整型____,’a’__字符___,"a"__字符串___
08 __整形___,’\007’__整型___
5. C语言源程序一定要有而且只有一个__主函数___函数,程序执行时也从它开始。
6. 结构化程序设计主要有___顺序__、__选择___和__循环___三种基本结构。
三、判断题
1. C语言不是一种结构化程序设计语言。(错)
2. C语言是弱类型语言,为了类型转换的方便,对类型的要求很不严格,在许多情况下不做类型检查。(对)
3. C语言既具有高级语言的特点,同时也具有部分低级语言的特点。(对)
4. C源程序可以由多个文件组成,每个文件中都可有一个主函数main()。(错)
5. C程序从main()函数开始执行,因此主函数main()必须放在程序的开头。(错)
6. 命名标识符时字符个数不得超过6个。(错)
7. 对于同一个数据种类型,变量值越大,它所占内存的字节数越多。(错)
8. 定义一个变量时必须指出变量类型,但是不一定必须给变量初始化。(对)
9. ""表示一个空字符串常量,’’表示一个空字符常量。(对)
10. 一个表达式中出现多种数值型数据类型,运算前先进行类型转换。(对)
11. 浮点数不能作自增或自减运算,只有整型才可作自增或自减运算。(错)
12. 已知a、b是整型变量,则表达式a=3,2+4,b=6,7+8是一个逗号表达式。(对)
四、问答题
1. 写出下面表达式的值
(1)12/3*9=36
(2)int i=3,j;
i*=2+5;
i/=j=4;
i+=(j%2);
i、j的最终结果是多少?i=5,j=4
(3)int a=3,b,c;
b=(a++)+(a++)+(a++);
c=(++a)+(++a)+(++a);a、b、c的最终结果是多少?a=9,b=9,c=25
2. 下列表达式是否正确?若正确,表达式的值是什么?
21/2=10 21/2.0= 10.5 21.0/2=10.5 21%2=1 21.0%2 21%2.0 18%15=3 15%18=15 3%15=3
五、编程题
编写程序,在屏幕上输出如下信息:
===================
= I am a student. =
===================
#include"stdio.h“
void main()
{
printf("= I am a student. =");
}
❸ 求几题c语言题目答案及详细解释,谢谢啦!
你好!!!
1.7 sizeof()是求数组的分配的大小,系统会在字符:"hello!";的后面加一个结束标志‘\0’,所以是6+1=7
2.虽然输入4 3 但是此时只是把4赋值给b,此时的3,还在缓冲区呢??
b=c--‖ scanf("%d",&c)&&a++;先算的是c--此时的c的值还是5,c--后就是4
3.c;
首先我们知道指针变量的值就是地址,要是给指针变量赋值要加&;
A.p1=&m;p2=&p1; p2=&p1这里错误,应为p2=p1
B.P1=&m;P2=&N;*P1=*P2;这句有危险:*P1=*P2;关于什么危险一句也解释不清楚,要是相知道的话,在联系我。
D.p1=&m;*p2=*p1 ;和B原因一样
❹ C语言习题请高手帮忙解答
1.
1:-200 2500
2:i=-200,j=2500
3: i=-200
j=2500
2.
i=12
j=0
k=0
3. 复合语句在语法上被认为是一条语句。空语句形式是只有一个分号的空行
4.C语句最后用分号结束
❺ 求C语言习题解答
1、
#include <stdio.h>#define STU 30#define COURSE 3void Input(long num[ ],int score[ ][COURSE],int n);void GetSumAver(int score[ ][COURSE],int n,int sum[ ],float aver[ ]);void Sort(long num[ ],int score[ ][COURSE],int n,int sum[ ],float aver[ ]);void Print(long num[ ],int score[ ][COURSE],int n,int sum[ ],float aver[ ]);int Search(long num[ ], int n, long x);main(){int n, score[STU][COURSE], sum[STU], pos;long num[STU], x;float aver[STU];printf("Please enter the total number of the students(n<=30):");scanf("%d", &n); /*输入参加考试的学生人数*/printf("Enter No. and score as: MT EN PH\n");Input(num, score, n); /*输入学生成绩*/GetSumAver(score, n, sum, aver); /*计算总分和平均分*/printf("Before sort:\n");Print(num, score, n, sum, aver);Sort(num, score, n, sum, aver); /*排名次*/printf("After sort:\n");Print(num, score, n, sum, aver);printf("Please enter searching number:");scanf("%ld", &x); /*以长整型格式输入待查找学生的学号*/pos = Search(num, n, x); /*名次查询*/if (pos != -1){printf("position:\t NO \t MT \t EN \t PH \t SUM \t AVER\n");printf("%8d\t%4ld\t%4d\t%4d\t%4d\t%5d\t%5.0f\n", pos+1,num[pos], score[pos][0],score[pos][1], score[pos][2], sum[pos],aver[pos]);}else{printf("Not found!\n");}}/* 函数功能:输入某班学生学号及期末考试三门课程成绩 函数参数:长整型数组num,存放学生学号 整型数组score,存放学生成绩 整型变量n,存放学生人数 函数返回值:无*/void Input(long num[ ], int score[ ][COURSE], int n){int i, j;for (i=0; i<n; i++){scanf("%ld", &num[i]);for (j=0; j<COURSE; j++){scanf("%d", &score[i][j]);}}}/* 函数功能:计算每个学生的总分和平均分 函数参数:整型数组score,存放学生成绩 整型变量n,存放学生人数 整型数组sum,计算得到的每个学生的总分 实型数组aver,计算得到的每个学生的平均分 函数返回值:无*/void GetSumAver(int score[ ][COURSE], int n, int sum[ ], float aver[ ]){int i, j;for (i=0; i<n; i++){sum[i] = 0;for (j=0; j<COURSE; j++){sum[i] = sum[i] + score[i][j];}aver[i] = (float)sum[i] / COURSE;}}/* 函数功能:按总分成绩由高到低排出成绩的名次 函数参数:长整型数组num,存放学生学号 整型数组score,存放学生成绩 整型变量n,存放学生人数 整型数组sum,存放每个学生的总分实型数组aver,存放每个学生的平均分 函数返回值:无*/void Sort(long num[ ],int score[ ][COURSE], int n, int sum[ ], float aver[ ]){int i, j, k, m;int temp1;long temp2;float temp3;for (i=0; i<n-1; i++){k = i;for (j=i+1; j<n; j++){if (sum[j] > sum[k]) k = j;}if (k != i){temp1 = sum[k]; sum[k] = sum[i]; sum[i] = temp1;temp2 = num[k]; num[k] = num[i]; num[i] = temp2;temp3 = aver[k]; aver[k] = aver[i]; aver[i] = temp3;for (m=0; m<COURSE; m++){temp1 = score[k][m];score[k][m] = score[i][m];score[i][m] = temp1;}}}}/* 函数功能: 打印名次表,表格内包括学生编号、各科分数、总分和平均分 函数参数: 长整型数组num,存放学生学号 整型数组score,存放学生成绩 整型变量n,存放学生人数 整型数组sum,存放每个学生的总分 实型数组aver,存放每个学生的平均分 函数返回值:无*/void Print(long num[ ], int score[ ][COURSE], int n,int sum[ ], float aver[ ]){int i, j;printf(" NO \t| MT \t EN \t PH \t SUM \t AVER\n");printf("----------------------------------------------------\n");for (i=0; i<n; i++){printf("%ld\t| ", num[i]);for (j=0; j<COURSE; j++){printf("%4d\t", score[i][j]);}printf("%5d\t%5.0f\n", sum[i], aver[i]);}}/* 函数功能:在学号数组中顺序查找学生的学号 函数参数:长整型数组num,存放学生学号 整型变量n,存放学生人数长整型变量x,存放待查找学生的学号 函数返回值:找到时,返回学生学号在学号数组中的下标位置,否则返回值-1*/int Search(long num[ ], int n, long x){int i;for (i=0; i<n; i++){if (num[i] == x) return(i);}return (-1);}
4、答案:#include <stdio.h>
void main()
{ int i , j;
double a[3][4], b[4][3];
printf("请输入原始矩阵:\n");
for(i=0;i<3; i++)
for( j=0; j<4 ; j++)
scanf ("%lf", &a[i][j]);
printf("计算转置矩阵:\n");
for(i=0;i<3; i++)
for( j=0; j<4 ; j++) b[j][i]=a[i][j];
printf("输出原始矩阵:\n");
for(i=0;i<3; i++)
{
for( j=0; j<4 ; j++) printf(" %10.2f ",a[i][j]);
printf("\n");
}
printf("输出转置矩阵:\n");
for(i=0;i<4; i++)
{
for( j=0; j<3 ; j++) printf(" %10.2f ",b[i][j]);
printf("\n");
}
}
❻ C语言习题请高手帮忙解答,急。
if(i%2)就是i除以2的余数是否为0
为0则打印*否则返回for();语句
程序输出为#*#*#$加上回车符
❼ 求C语言练习题答案,这几个题我不确定,拜托明白的帮忙看下!急用的,最好能解释一下
9. 设int a[10];则对a数组元素的错误引用是( )
A.a[5] B.*(a+1) C.a[10-10] D.a(5)
D是错误的,因为a是数组,不是函数。
11.设double * p[6];则( C 这个没法解释 )
A.p是指向double型变量的指针
B.p是double型数组
C.p是指针数组,其元素是指向double型变量的指针
D.p是数组指针,指向double型数组
16.设有定义
struct rol{
long x;
float y;
} time;
*timep=&time;
问题呢?
18.C语言中,系统自动打开的文件是( D 输入输出设备文件,就是 stdin/stdout/stderr三个文件 )
A.二进制文件 B.随机文件
C.非缓冲文件 D.设备文件
20.执行下列程序
#include "stdio. h"
min ()
{printf("%d\n",NULL);}
后输出的结果是( B 一般是0,但是你写程序的时候不要直接写零 )
A.-1 B.0 C.1 D.2
21.C语言程序编译时,程序中的注释部分( D 这个没法解释,注释在编译预处理阶段就被删除了 )。
A.参加编译,并会出现在目标程序中
B.参加编译,但不会出现在目标程序中
C.不参加编译,但会出现在目标程序中
D.不参加编译,也不会出现在目标程序中
26.下列语句定义p为指向float类型变量d的指针,其中哪一个是正确的( B 没法解释,根据C语法得出 )。
A. float d,*p=d; B. float d,*p=&d;
C. float d,p=d; D. float *p=&d,d;
27.执行语句“for(i=0;i<10;++i,++a)scanf(〃%d〃,a);”试图为int类型数组a〔10〕输入数据,是错误的,错误的原因是( B )。
A.指针变量不能做自增运算 B.数组首地址不可改变
C.++i应写作i++ D.++a应写作a++
28.函数调用语句fun((((1,2),3),4));中参数的个数是( A 只有一个,(((1,2),3),4) 也就是4作为参数被传递给函数fun )。
A.1 B.2 C.3 D.4
10.设 int a [2][4], (*p)[4]=a;用指针变量p表示数组元素a[1][2]为___p[1][2]________。
12.计算机算法通常采用以下三种方法表示:____这个,我不知道_____、___________、__________。
17.在执行输入语句scanf(“a=%d?b=%d?c=%d”,a,b,c);时,用户应相应的在屏幕上输入_______a=8?b=7?c=5_______________________,才能使变量a,b,c的值分别为8,7,5。
能回答的尽量帮忙啊
❽ C语言编程题这题咋做啊
分析,假如有N封信和N个信封,
第一步:第一封信,错误信封情况:N-1个
第二步:假设与第一封信装错的信封为第A个信封,则此步就找第A个信封,与之匹配会出错的信封有N-1个
第三步(如果N大于2):与第M封信匹配错误的信封情况为N-2(M≠1,M≠A)
第四步:假设与第M封信装错的信封为第B个信封,则此步就找第B个信封,与之匹配会出错的信封有N-2个
……一次类推
算法就是(N-1)*(N-1)*(N-2)*(N-2)*…*1*1
自己想出来的,应该是对的,楼主自己测试看看,应该没错,代码就不写了,很简单的循环
❾ 求C语言程序设计习题集与上机指导-第三版 (及答案)......
大学学习资料免费下载网 有
在 其他公共课程 版块
标题:
谭浩强《C程序设计题解与上机指导》(电子书+纸质书)
谭浩强编《C语言程序设计》(电子书word(txt)、pdf+纸质书)
谭浩强C语言程序设计习题参考解答
和配套 C程序设计题解与上机指导 答案
都有的 还有其他课程答案 (下载不用积分)