C语言程序设计试题及参考答案1 一、单项选择题(20分,每题2分) 1.以下叙述中错误的是。C A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B)数组名代表的是数下面是小编为大家整理的C语言程序设计试题及参考答案3篇,供大家参考。
C语言程序设计试题及参考答案1
一、单项选择题(20分,每题2分)
1.以下叙述中错误的是。C
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行时,数组元素的下标越界时,系统给出“下标越界”的出错信息
D)可以通过赋初值的方式确定数组元素的个数
2.以下叙述中,正确的是:C
A)continue和break语句只能用于循环体内
B)continue和break语句只能用于分支语句中
C)continue语句只能用于循环体内
D)continue语句只能用于分支语句中
3.执行下列程序段后,正确的结果是 C
char x[8] = {8,7,6,5,0,0}, *s;
s = x+1;
printf(“%d\n”, s[2]);
A) n B) 0 C) 5 D) 6
4.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A
A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式
5.变量的指针,其含义是指该变量的 B
A)值 B)地址 C)名 D)一个标志
6.执行下列程序段后,正确的结果是A
int i=5;
while(i=1)
i--;
printf(“%d”,i)
A) 5 B) 0 C) 1 D) 无限循环
7.for(i=0;i<10;i++) A
if(i〈=5) break;
则循环结束后i的值为
A)0 B)1 C)5 D)10
8.执行下列程序段后,正确的结果是C
char x[8] = {8,7,6,5,0,0}, *s;
s = x+1;
printf(“%d\n”, s[2]);
A) n B) 0 C) 5 D) 6
9.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A
A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式
10.设有数组定义:char str[]=”China”;则下面的输出为B
printf(“%d”,strlen(str));
A)4 B)5 C)6 D)7
二、填空题(30分,每空2分)
1.C语言提供的三种逻辑运算符是__&&___、__||___和__!__。
2.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是 1 B 。
#include
main()
{
char a,b;
a=getchar();
scanf("%d",&b);
a=a-"A"+"0";
b=b*2;
printf("%c %cn",a,b);
}
3.以下程序运行后的输出结果是 4 3 5 。
main()
{
int a=3,b=4,c=5,t=99;
if(b if(a printf("%d %d %d\n",a,b,c); } 4.下面程序将字符数组a复制到字符数组b中。 main() { char a[]="I am a boy.",b[20]; int i; for(i=___0____;a[i]!="";i++) { ____ b[i]=a[i]____; } _____ b[i]= "\0"____; } 5.若有定义:double x[3][5]; 则x数组行下标的上限是__0___,列下标的下限是__4___。 6.以下程序运行后的输出结果是 101 。 #define S(x) 4*(x)*(x)+1 main() { int i=2,j=3; printf("%dn",S(i+j)); } 7.若有定义:double x[3][5]; 则x数组行下标的上限是_0____,列下标的下限是_4___。 8.已知宏定义#define s 2+3 printf(”%d”,s*4);的输出结果是__14_____。 9.若有int a[3][2] = {{1},{3,2},{4,5}};,则a[1][1]的值是 2 。 三、写出程序的运行结果(30分,每题10分) 1.写出程序运行后的输出结果。 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[i][j]; } return s; } main( ) { int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf("%d\n",f(a)); } 16 2.写出程序运行结果 #include main() { int i=10,j=0; do { j=j+i; i--; }while(i>2); printf("%d\n",j); } 52 3.写出程序运行后的输出结果。 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[i][j]; } return s; } main( ) { int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf("%d\n",f(a)); } 16 四、编程(完形填空)(20分,每题10分) 1.打印所有水仙花数,所谓水仙花数是指一个三位数,其各位数的立方和等于其本身。 include main() { int i,j,k,m; for(i=100; i<1000; i++) { j=i/100; k= i/10 ; m=i; if( j*100+k*10+m==m*m*m+j*j*j+k*k*k ) printf("%dn", i); } } 2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。 main() { int yy,mm,day; scanf(“%d%d”,&yy,&mm); switch(_mm__) { case1: case3: case5: case7: case8: case10: case12: day=__31_; break; case4: case6: case9: case11: day=__30___; break; case2: if(((yy%4==0)__&&___(yy0!=0))__||__(yy@0==0)) day=29; else day=28; break; } } ——C语言程序设计模拟试题及答案3篇 一、填空题 1、C语言中基本的数据类型有:______、______ 、______ . 2、C语言中普通整型变量的类型说明符为______,在内存中占______字节,有符号普通整型的数据范围是______ . 3、整数-35在机内的补码表示为______. 4、执行下列语句int a=8; a+=a-=a*a;后,a的值是______. 5、有如下语句:char A[ ]={“I am a student”};该字符串的长度是______,A[3]=______. 6、符号“a”和‘a’的区别是______. 7、所谓“指针”就是______.“&”运算符的作用是______.“*”运算符的作用是______. 8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是_a=1,b=3,c=2__. 一、填空题 (1)整型、实型、字符型。 (2)int,2,-32768~ +32767 (3)1111111111011101 (4)- 112 (5)14,‘m’ (6)“a”是字符串常量,而‘a’是字符常量。 (7)存放地址值的变量或常量,或者答地址。 (8)取运算对象的.地址。取指针变量所指的内容。a=1,b=3,c=2 二、选择题 1、设整型变量a为5,使b不为2的表达式是( C )。 A. b=a/2 B. b=6-(——a) C. b=a%2 D. b=a>3?2:1 2、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( C )组成配对关系。 A. 缩排位置相同的if B. 在其之前未配对的if C. 在其之前未配对的最近的if D.同一行上的if 3、以下程序的输出结果是( D )。 int x=10,y=10; printf(“%d %d\n”,x——,——y); A. 10 10 B. 9 9 C. 9 10 D. 10 9 4、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( B )。 A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i 5、选出下列标识符中不是合法的标识符的是( D )。 A. hot_do B. cat1 C. _pri D. 2ab 6、以下程序的输出结果是( B )。 int a=5; float x=3.14; a*=x*(‘E’ - ‘A’); printf(“%f\n”,(float)a); A. 62.000000 B. 62.800000 C. 63.000000 D. 62 7、设有说明double(*p1)[N];其中标识符p1是( C )。 A. N个指向double型变量的指针。 B. 指向N个double型变量的函数指针。 C. 一个指向由N个double型元素组成的一维数组的指针。 D.具有N个指针元素的一维指针数组,每个元素都只能指向double型量。 8、在C程序中有如下语句:char *func(int x,int y);它是( C )。 A. 对函数func的定义。 B. 对函数func的调用。 C.对函数func的原型说明。 D. 不合法的。 9、以下程序的输出结果是( D )。 char str[15]=“hello!”; printf(“%d\n”,strlen(str)); A. 15 B. 14 C. 7 D. 6 10、分析以下程序的输出结果是( A )。 main() {int a=5,b=-1,c; c=adds(a,b); printf(“%d”,c); c=adds(a,b); printf(“%d\n”,c); } int adds(int x,int y) {static int m=0,n=3; n*=++m; m=n%x+y++; return(m); } A. 2,3 B. 2,2 C. 3,2 D. 2,4 11、下列描述中不正确的是( C )。 A. 字符型数组中可能存放字符串。 B. 可以对字符型数组进行整体输入、输出。 C. 可以对整型数组进行整体输入、输出。 D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。 12、以下程序的输出结果是( A )。 #define f(x) x*x main() {int a=6,b=2,c; c=f(a)/f(b); printf(“%d\n”,c); } A. 9 B. 6 C. 36 D. 18 13、设有如下定义: int x=10,y=3,z; 则语句printf(“%d\n”,z=(x%y,x/y));的输出结果是( D )。 A. 1 B. 0 C. 4 D. 3 14、定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9}; 则语句for(i=0;i<3;i++) printf(“%d ”,x[i][2-i]);的输出结果是( C )。 A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9 15、以下对二维数组a进行正确初始化的是( B ) A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[ ][3]={1,2,3,4,5,6}; C. int a[2][ ]={1,2,3,4,5,6}; D. int a[2][ ]={{1,2},{3,4}}; 16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( C )。 int x; scanf(“%d”,&x); if(x++>5) printf(“%d”,x); else printf(“%d\n”,x - -); A. 7和5 B. 6和3 C. 7和4 D. 6和4 17、设有如下定义: char *aa[2]={“abcd”,“ABCD”};则以下说法中正确的是( D )。 A)aa数组成元素的值分别是“abcd”和ABCD“ B)aa是指针变量,它指向含有两个数组元素的字符型一维数组 C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D)aa数组的两个元素中各自存放了字符‘a’和‘A’的地址 ?18、下列程序的输出结果是( D )。 char *p1=“abcd”, *p2=“ABCD”, str[50]=“xyz”; strcpy(str+2,strcat(p1+2,p2+1)); printf(“%s”,str); A. xyabcAB B. abcABz C. ABabcz D. xycdBCD 19、下列程序的输出结果是( C )。 int a[5]={2,4,6,8,10},*P,* *k; p=a; k=&p; printf(“%d”,*(p++)); printf(“%d\n”,* *k); A. 4 4 B. 2 2 C. 2 4 D. 4 6 20、不能把字符串:Hello!赋给数组b的语句是( B )。 A. char b[10]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’}; B. char b[10]; b=“Hello!”; C. char b[10]; strcpy(b,“Hello!”); D. char b[10]=“Hello!”; ——C语言程序设计期末试题及答案3篇 1.以下程序输出结果是( ) main() { int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); A)7 B)6 C)5 D)4 2以下程序的输出结果为( ) # include main ( ) { int i=0, j=0, a=6; if ((++i>0)&&(++j>0)) a++; printf ("i=%d, j=%d, a=%d\n", i,j,a);} A) i=0, j=0, a=6 B) i=1, j=1, a=7 C) i=1, j=0, a=7 D) i=0, j=1, a=7 3有如下程序 main() { int a=2,b=-1,c=2; if(a if(b<0) c=0; else c++; printf("%d\n",c); } 该程序的输出结果是( ) A) 0 B) 1 C) 2 D) 3 4若i为int型,且有程序如下,则输出结果是( ) i=111; if(i%3==0) printf("####"); printf("****"); A) #### B) **** C) ####**** D) 无输出结果 5若运行时x=12,则运行结果为( ) {int x, y; scanf("%d", &x); y=x>12 ? x+10:x-12; printf("%d\n", y);} A) 0 B) 22 C) 12 D) 10 6以下程序的输出结果是( ) main() { int i=0, j=0, k=6; if ((++i>0)||(++j>0)) k++; printf("%d, %d, %d\n", i, j, k); } A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7 7若变量都已正确说明,则以下程序段输出为( ) int a=1,b=2,c=3; if(a>b) a=b; b=c; c=a; printf("a=%d b=%d c=%d\n",a,b,c); A)a=1 b=2 c=1 B)a=1 b=2 c=3 C)a=1 b=3 c=1 D)a=2 b=3 c=2 8当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( ) if(a if(c else if(a if(b else x=3; else x=6; else x=7; A) 1 B)2 C)3 D)6 9以下不正确的语句为( ) A)if(x>y); B)if(x==y)&&(x!=0)x+=y; C)if(x!=y)scanf("%d",&x);else scanf("%d",&y); D)if(x 10有以下程序: #include"stdio.h" main( ) {char i; for (; (i=getchar ())!="\n";) {switch (i-"a") {case 0: putchar (i); case 1: putchar (i+1);break; case 2: putchar (i+2); case 3: break; default: putchar (i);break; } } printf ("\n"); } 输入下列数据后,程序的输出结果是( ) abcde A) abcde B) abcee C) abbde D) abccdd 11若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是( ) A) switch(a+b); B) switch(a*a+b*b) { case 1:y=a+b; break; {case 3: case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a,break; } C) switch a D) switch(a-b) { case 1 :y=a-b; break { case 2: x=a*d; break case c1:case 4:x=a+b;break; default:x=a+b; case c2:case 11:y=a-b;break; } default:y=a*b;break; } 12写出下面程序输出结果( ) {int x=1, y=0, a=0, b=0; switch(x) {case 1: switch(y) {case 0: a++; case 1: b++; } case 2: a++; b++; } printf("a=%d, b=%d\n", a, b) ; } A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2 13C语言的for语句中的表达式可以部分或全部省略,但两个( )不可省略。但当三个表达式 均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。 A) < B) ++ C) ; D) , 14下面有关for循环的正确描述是( )。 A) for循环只能用于循环次数已经确定的情况 B) for循环是先执行循环体语句,后判定表达式 C) 在for循环中,不能用break语句跳出循环体 D) for循环体语句中,可以包含多条语句,但要用花括号括起来 15以下程序段( )。 x=-1; do { x=x*x;} while(!x) A) 是死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误 16如下的数组中,数组array占用的内存空间是( )个字节。 char array[]={"c","h","i","n","a"}; A. 1 B. 5 C. 6 D. 不确定 17设有程序段 int k=10; while(k=0) k=k-1; 则下面描述正确的是( )。 A) while 循环执行10次 B) 循环是无限循环 C) 循环体语句一次也不执行 D) 循环体语句执行一次 18下列程序段的运行结果是( ) int n=0; while(n++<3); printf("%d",n) A. 2 B. 3 C. 4 D. 以上都不对 19设有程序段 t=0; while(printf("*")); { t++; if (t<3) break; } 下面描述正确的是( )。 A) 其中循环控制表达式与0等价 B) 其中循环控制表达式与"0"等价 C) 其中循环控制表达式是不合法的 D) 以上说法都不对 20下面程序的运行结果是( )。 #include main() { int y=10; do { y--;} while(--y); printf("%d\n",y--); } A) -1 B) 1 C) 8 D) 0 21以下程序段的输出结果是( ). main() { int i=5; for ( ;i<=15; ) { i++; if (i%4==0) printf("%d ",i); else continue;} } A. 8 12 16 B. 8 12 C. 12 16 D. 8 22以下不是无限循环的语句为( )。 A) for(y=0,x=1;x>++y;x=i++) i=x; B) for( ; ;x++=i); C) while(1){x++;} D) for(i=10; ; i--) sum+=i; 23有如下语句 int x=3; do { printf("%d\n",x-=2);} while(!(--x)); 则上面程序段( ) A. 输出的是1 B. 输出的是1和-2 C. 输出的是3和0 D. 是死循环 24以下不是无限循环的是( ) A. for(y=0,x=1;x>++y;x=i++) i=x; B. for( ; ;x++=i); C. while(1) x++; D. for(i=10; ;i--) s+=i; 25以下正确的描述是( )。 A) continue语句的作用是结束整个循环的执行 B) 只能在循环体内和switch语句内使用break语句 C) 在循环体内使用break语句或continue语句的作用相同 D) 从多层循环嵌套中退出时,只能使用goto语句 26以下程序输出结果为( ) #include "stdio.h" main() {int i,b,k=0; for(i=1;i<=5;i++) { b=i%2; while (b-->=0) k++;} printf("%d,%d\n",k,b); } A. 3,-1 B. 8,-1 C. 3,0 D. 8,-2 27以下程序段中循环体总的执行次数是( ) int i,j; for(i=7;i;i--) for(j=0;j<6;j++) {......} A) 42 B) 21 C) 13 D) 36 28以下不正确的描述是( ) A. break 语句不能用于循环语句和switch语句外的任何其他语句 B. 在switch语句中使用break语句或continue语句的作用相同 C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行 D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环 1else语句总是和靠它最近的if匹配。 2switch语句中一定有default分支 3case后只能跟常量,不能跟变量 4break语句的作用就是结束本层循环。 5do-while语句构成的循环不能用其它语句构成的循环来代替。 6用do-while语句构成循环时,只要while后的表达式为0时就结束循环。 7for(表达式1;表达式2;表达式3)中,表达式1和表达式3不能同时都是逗号表达式。 8for循环中,如果表达式2为空,则该循环一定是死循环。 9while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。 10for(i=0,j=10;i<=j;i++,j--) k=i+j;执行完后,k的值为50。 1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分) A.switch(x) { case 1.0: printf("* "); case 2.0 printf("** "); } B.switch((int)x) { case 1.0: printf("* "); case 2.0 printf("** "); } C.switch(a+b) { case 1: printf("* "); case 2+1: printf("** "); } D.switch(a+b) { case 1: printf("* ") case c: printf("** "); } 标准答案:C 2. 若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2 则执行以下printf语句后,输出的结果是( ) int a; a=Y; printf("%d ",Z); printf("%d",--a); (2分) A.7,6 B.12,6 C.12,5 D.7,5 标准答案:D 3. 下面的符号常量定义中,正确的是 ( ) (2分) A.#define PI 3.14; B.#include PI 3.14; C.#define PI=3.14 D.#define PI 3.14 标准答案:D 4. 以下程序的输出结果是( ) int a, b; void fun() { a=100; b=200; } main() { int a=5, b=7; fun(); printf("%d%d ", a,b); } (2分) A.100200 B.57 C.200100 D.75 标准答案:D 5. 若有以下调用语句,则不正确的fun函数的首部是( ) main() { … int a[50],n; … fun(n, &a[9]); … } (2分) A.void fun(int m, int x[]) B.void fun(int s, int h[41]) C.void fun(int p, int *s) D.void fun(int n, int a) 标准答案:D 6. 以下程序的输出结果是( ) fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf("%d",a); } (2分) A.0 B.29 C.31 D.无定值 标准答案:C 7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2分) A.auto和static B.auto和register C.register和static D.extern和register 标准答案:B 8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分) A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回实参 D.传递方式由用户指定 标准答案:B 9. 以下函数值的类型是( ) fun ( float x ) { float y; y= 3*x-4; return y; } (2分) A.int B.不确定 C.void D.float 标准答案:A 10. C语言规定函数的返回值的类型是由( ) (2分) A.return语句中表达式类型决定 B.调用该函数时的主调函数类型决定 C.调用该函数时系统临时决定 D.在定义该函数时所指定的函数类型决定 标准答案:D ——C语言程序设计试题及答案3篇 1[单选题] 若有语句:int a[3][4],(。P)[4];P=a;,则以下选项中叙述错误的是()。 A.系统将开辟一个名为P的二维数组,“o][o]中的值即为a[o][o]中的值 B.P+1代表a[1][0]的地址 C.P中将存放a数组的首地址 D.P+2代表a数组最后一行的首地址 参考答案:A 参考解析:(+P)[4]定义了一个数组指针。P可以指向类似于arry[][4]的数组,题设中,P不是一个二维数组,只是可以指向这类二维数组,因此选项A错误。P+1代表了第一行第一个元素的地址,P=a指向数组a的首地址,则B、C选项正确,同理可知选项D也正确。故答案为A选项。 2[单选题] 以下叙述中正确的是() A.在算法设计时,可以把复杂任务分解成一些简单的子任务 B.在C语言程序设计中,所有函数必须保存在一个源文件中 C.只要包含了三种基本结构的算法就是结构化程序 D.结构化程序必须包含所有的三种基本结构.缺一不可 参考答案:A 参考解析:C语言的程序中,函数不一定都放在同一个源文件中,可以分别放在不同源文件中,通过#inClude命令来引用,所以B错误。结构化程序可以包含三种基本结构中的一种或几种,所以C,D错误。 3[单选题] 有三个关系R、S和T如下: 则由关系R和S得到关系T的操作是( )。 A.自然连接 B.交 C.除 D.并 参考答案:C 参考解析:如果S=T/R,则s称为T除以R的商。在除运算中s的域由T中那些不出现在R中的域所组成,对于s中的任一有序组,由它与关系R中每个有序组所构成的有序组均出现在关系T中。所以本题选择C2017年计算机二级C语言练习题及答案2017年计算机二级C语言练习题及答案。 4[单选题] 以下叙述错误的是( )。 A.一个算法所包含的操作步骤应该是有限的 B.任何能通过编译和运行的算法都一定能得到所期望的结果 C.算法中每一条指令必须有确切的含义 D.算法可以用各种描述方法来进行描述 参考答案:B 参考解析:算法的特点:零个或多个输入,至少一个输出,可行性(能编程实现),有穷性(有限步出结果),确定性(描述不能有歧义)。可知选项A,c,D正确。c语言中。通过编译,可以运行的程序,不一定符合题目的本意,因此即使可以运行得到结果,也不一定和预期的结果一样,否则就不需要调试和修改程序了,故B选项错误。答案为B选项。 5[单选题] 设有定义: int a=1,b=2,C=3; 以下语句中执行效果与其他三个不同的是( )。 A.if(a>B.C=a,a=b,b=C; B.if(a>B.{C=a,a=b,b=C;} C.if(a>B.C=a;a=b;b=c; D.if(a>B.{C=a;a=b;b=c;} 参考答案:C 参考解析:由于a小于b,所以所有选项中的条件都为假,c选项中实际执行了a=b;b=c;两个操作。而A、B、D选项由于条件不成立,所以什么也没有做,所以选择c选项。 6[单选题] 以下叙述中正确的是 A.两个字符串可以用关系运算符进行大小比较 B.函数调用strlen(s);会返回字符串S实际占用内存的大小(以字节为单位) C.C语言本身没有提供对字符串进行整体操作的运算符 D.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和 参考答案:C 参考解析:本题考查字符串处理函数strien、strcat、strcmp。B选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进行大小比较,可以使用strcmp。D选项当使用连接函数strcat时,内存空间会减少一个字符位置。 7[单选题] 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。 A.一对一 B.一对多 C.多对多 D.多对一 参考答案:C 参考解析:因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。 8[单选题] 对于while(!E)s;,若要执行循环体s,则E的取值应为: A.E等于1 B.E不等于0 C.E不等于1 D.E等于0 参考答案:D 参考解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。该题中如要执行语句s,则!E应为真,因此E应等于0,D选项正确。 9[单选题] 在软件设计中不使用的工具是( )。 A.系统结构图 B.PAD图 C.数据流图(DFD图) D.程序流程图 参考答案:C 参考解析:系统结构图是对软件系统结构的总体设计的图形显示2017年计算机二级C语言练习题及答案计算机等级。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的 PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C。 10[单选题] 若有定义语句:char a="\82";则变量a() A.说明不合法 B.包含1个字符 C.包含2个字符 D.包含3个字符 参考答案:B 参考解析:char a="\82",定义字符量a,char型变量值为1个字节长度,并从右侧开始运算,所以a的值应为"2"。因此B选项正确。 ——c语言程序设计心得5篇 在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。 虽然在上个学期中,我们已经学习了《C语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,*时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。 C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。 在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。 这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。 在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了! 在参考书上,我们不仅参考了曾经学过的高敬阳主编的《c语言程序设计》,还找到了由谭浩强主编的第三版《c语言》进行参考。 当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。 三周的小学期即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导,更要感谢我们小组成员之间的合作与交流。 通过此次C语言程序设计实践,本人实在是获益不浅!C语言是上个学期开的课程,所以这个学期并没怎么看过,当要开始设计的时候,还真不知从哪下手!结果,第一次的上机,我傻坐着不知道该做什么,后来就写了几个预处理命令。回去以后,我想,这样不行,这样下去还得了!我就重新复习了一遍我们上个学期学习的内容,发觉自已有许多都遗忘了!特别是有文件的操作,几乎是一遍空白!温习过后,开始做题! 一开始做题,也是有点模糊,在指导老师的指导下,我们慢慢的进入状态,我们做的是一个通讯录,内容包括很多。运用的函数也是非常的复杂,我们一组有七个人,我分工合作,首先我一起完成了结构题,然后我们一人各负责一个函数程序的设计,经过几星期的努力,我们完成了大半个程序,但是总是有很多错误出现,有好多是些小问题,这都是我们粗心大意造成的,所以设计程序一定要仔细,不容一点的马虎。当然也有大问题,关于文件的.操作,是我们最大的问题,不过,我们做好后,经过老师的讲解和改错,我们也懂得设计和运用了。同时,也让我知道了,合作的力量,如果是孤军奋战的话,我也不能在规定时间内完成,当然,也多亏老师的指导。 这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验! 三周的课程设计已经结束了。 回想学习C语言的过程中,既有快乐又有烦恼。 从领到书的那一刻,我就很郁闷,《C语言程序设计》到底事学什么的,有什么用。刚开始上课时,还在迷茫这门课程是用来做什么的。不过,这些感受都是在对这门课程不了解的情况下产生的。后来慢慢的接触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。尤其是学到语句和函数时,上机操作程序,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。通过半个学期的学习,我掌握了基本知识。 下学期开始时,被通知要进行三周的课程设计。当时有点懵,感觉学的东西很少,很零散,不知该怎么练到一起,就要课程设计,是不是太难为我们了。 第一天基本上都是在看书,把基本知识再熟悉一边。到了下午的时候,老师发过来三道练习题,从这几道练习题上我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。 第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。但是,到了第二周,我们由不得不再次陷入困境。在整个程序的编写过程中。最难的就是修改和删除这两个模块,这也是我们第二周要解决的重点问题。 开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了。困难之时,我们组的其他人,帮助了我,完成了修改和删除。这样的话,整个程序基本上全部完成了,就剩下完善工作了。我们组写了两个程序,最后,两个程序相互组合,互补,大功告成 虽然设计时完成了,但是我觉得其中还是由一些不足之处: 1.警告句。程序中缺少一些警告句,例如:“是否真的删除(y/n)?”。 2.重名的情况。由于考虑的不周全,没有设计遇到重名的情况该怎么处理。 3.选择单一。我们设计的程序中,只设计了按名字选择,进行操作,忽略了重名的情况。 整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。 短短的三周课程设计结束了,但是这段时间里,我又学到了更多C知识,如:对象数组,string类,文件流等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全。,也看到了团队精神和互帮互助的重要性。这一点会让我终生受益。通过三周的课程设计,我觉得自己肚子里的墨水多了,收获也挺大的,这三周过的挺充实! 首先我要告诉大家的是:第一,学习无捷径!对于学习编程而言,你现在的付出将来都是有回报的。但是,学习C语言也需要方法。 我遇到过很多学习C语言的人,包括我以前的同学,很多人都是学到一半就放弃了。那么为什么那么多人学习C语言都半途而废呢?原因就是他们找不到正确的学习方法!在学习的过程中四处碰壁,兴趣和自信心逐渐被消耗殆尽。对他们来说学习C语言是一件很痛苦的事! 事实上学习编程是一件很好玩、很有趣、很有意思也很有前途的事情!那么学习C语言有什么好的方法呢?根据我自己多年的总结,以及很多编程前辈的经验,主要有以下几个方面: 1)分清主次 学习C语言最忌讳的就是不分主次,这是绝大多数学习C语言的同学都会犯的错误!我们刚开始学习的时候只需要将那些最重要的、最核心的学会就已经很好了!先将最精髓的东西提炼出来,再将整个C语言学一遍,从全局上把握C语言。对于那些次要的,有需要再学,没有需要也可以不学。 2)一定要多上机,多“敲”代码 编程是一门实践性的学科,绝对不是理论。如果不动手“敲”代码的话,永远都学不会编程。很多问题只有在“敲代码”的时候才能发现,才会有更加深刻的体会、领悟和理解。而不是靠死记硬背书中的注意点,那样真的很痛苦。我在学习编程的时候从来都不会刻意记忆什么注意点,这些知识点都是在不停“敲代码”的过程中,自然而然地融入我的身体中的。 你们一定要记住一句话:“程序是写出来的,不是看书看出来的!” 3)要“敲代码”,必学盲打 盲打是学习编程最基本的技能。就算你C语言学得很好,达到了“思想在键盘上飞舞”的境界,但是如果你不会盲打,那你想“飞”也“飞”不起来!所以,不会盲打会非常影响你的学习效率。 4)要学会记笔记 编程需要不断地积累。我们一定要学会模仿别人优秀的代码、优秀的算法,然后将它记下来。一定要站在巨人的肩膀上学习。但是我们的记忆能力是有限的,时间长了难免会遗忘,所以一定要学会记笔记。一有心得、体会、感悟就写下来,这些都是很珍贵的。 我们在记笔记的时候,如果眼前没有计算机则可以先写在纸上,但事后一定要将它整理成电子版。整理成电子版看起来会很方便、舒适,还可以随意地增添和删改,保存时间也长。 在朗沃学习已经差不多一个月了,今天是学C语言的最后一天。在学习C语言的过程中感觉比较轻松,可能是因为以前接触过C语言,再加上只学了C语言的基础吧,也有了一些学习C语言的心得。 学习C语言的起步就是学习它的方法规则,如果把它学习得好在学习后面的时候就比较容易理。比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。在C语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。这些都是语法基础,如果把它们都了解很好了,那么编起程序来就很得心应手。比如说if语句和switch语句,这两种条件语句都是用来执行判断功能的,那什么时侯用if什么时侯用switch,如果很好地了解它们的结构和作用的话那么就能灵活运用:若它的条件分支是多个而且条件的值是一个确定的值时就可以选用switch。反之,在大多数情况下就用if。掌握了语言法规则,不一定就能编出程序来,其实学习编程就是要学习一种思想,一种思维方法,首先要确定一种算法,如从1加到100,判断润年等,我认为这些算法都是一种思维方法。画流程图就是在构建编写程序思路的过程,当画好一个流程图时编程思想也就出来了,程序也差不多了,再结合掌握的语言的方法规则,在计算机里实现就可以了。任何程序只要有思维,有想法,那么实现程序时就不会觉得无从下手。而要学习这种思维方法就是多做题,多读程序,学习别人好的思维方法,多想想一个程序还可不可以有另外一种方法来实现它。这样久而久之,自然会形成一种自己的思维方法。因此我认为不管学什么语言都是这样。 另外,良好的编程习惯也是学好C语言的重要因素。例如编写程序时用缩进的方式、写注释、程序写到一定的阶段时要做一下测试等。这些工作可以帮我们在调试程序时有很大的帮助。程序代码实现后,错误是难免的,所以也要锻炼自己的调试查错能力,而良好的编程习惯可以使我们在调试时减小工作量和提高调试效率,也有助于形成自己的编程风格。 C语言是一种编译性的语言,由于出现的时间比较早,所以现在有很多不同的编译环境。在这里我不想推荐一种编译环境,只是希望大家能够找到满足自己要求的。首先我们可能会去找中文的编译环境,比如国内的WIN-TC之类,但是从以后的学习中我认为初学者还是应该从英文的环境开始入手会比较好。因为大多数的编译器都是英文的,如果对英文不习惯,为了将来你也要慢慢的去学习适应。当然不是每个人的英文水*都会那么好,那么我们可以借助于计算机,用一些在线的翻译软件,如金山词霸之类的就很好用。让我们在学习一种计算机语言的同时又可以从中掌握一些常用的英语单词,这对于我们以后学习计算机,无论是不是从事软件开发都会有好处的。 不要想以后的计算机语言会是中文的语句,这一点永远都只会是幻想。我们可以想一下,是打一个IF快一些,还是你打“如果”快一些呢? 学习语言要有目的性。没有目的你会发现自己的学习的过程中很枯燥,会渐渐失去对C语言的学习兴趣。所以我们要有一个远大而又容易实现的目的,我要用C语言来做什么?再把这个最终的目的分成部分,让我们慢慢的一点一点的来完成它,这样在学习C语言的过程中,我们就会始终陶醉在一个又一个成功的喜悦里,让我们的学习越来越有兴趣。有一天,我们会发现:原来学习C语言真的是一件很有意思的事儿,而且学好C语言也不是很难么! 学习C语言要有一定的方法。很多人学习C语言都是自学的,这里我向大家推荐一种方法。在学习的过程中,我们会发现一章一章的看下去会很枯燥,那么我们可以先掌握C语言的基本数据类型和控制结构,然后用自己的想法来实现一种功能,不会的地方可以再去书中找。不要把书当成教材,要把它当成一本字典,一个工具。如果大家还是习惯于看书中的章节循序渐近的话,我们也可以改一下,遇到不会的地方,我们可以跳过去,看下面的章节,直到把书看过一遍后我们再回到以前不懂的地方,你就会发现你已经可以看懂了。再有就是不要看一本书,每个人的思想都不相同,虽然都是C语言书籍的作者,但每个人对C语言的理解和表述都不会一样的,如果你正在看的一本书你看不懂,或是不理解,那么我建议你再去买一本另外作者写的。也就是说不一定别人说的好书就适合我们,书一定要多读多看。学习C语言只看书也是不够的,我们要一边看书,一边上机做练习,或者在你学习了C语言的基础知识以后就可以找一些别人的程序来看,遇到不明白的函数可以再翻一下书,当然,看别人程序的时候手头有一本库函数大全是最好不过的事儿了。如果查书也理解不了,我们可以把他的程序输入到计算机里,情况好的话能够顺利通过编译,如果不能顺利执行,我们也同样可以学习到一些C语言调试方面的知识。 说了这么多有朋友也许会问,学习C或其它语言对我们有什么好处呢?有一点我可以告诉给大家,学习C语言可以让我们更好的锻炼自己的逻辑思维能力,还可以让你掌握更好的计算机知识,在不断学习的过程中让你真正的自信起来!让我们一起来学习C语言吧! ——C语言程序设计(陈明晰著)课后答案下载3篇 点击此处下载☞☞☞C语言程序设计(陈明晰著)课后答案☜☜☜ ——大学《C语言》试题及答案3篇 改错题(每个程序只有一个错误,填入错误语句所在的行号以及修改后的语句) 1、下段程序的功能是先输入一个整数,然后将输入的整数输出。 1 main() 2 {int x; 3 scanf(“%d”,x); 4 printf(“x=%d\n”,x); } 行号:3 改为:scanf(“%d”,&x); 2、下段程序的功能是求1+2+3+4+……+99+100的和。 1 main() 2 { int j=1,sum=0; 3 while(j<=100) 4 sum=sum+j;j++; 5 printf(“%d”,sum);} 行号:4 改为:{sum=sum+j;j++; } 3、下段程序的.功能是当输入x的值为90时,输出“right”,否则输出“error”。 1 main() 2 { int x; 3 if (x=90) printf(“right”); 4 else printf(“error”);} 行号:3 改为: if (x==90) printf(“right”); (4)下面程序的功能是输出字符串S 1 main() 2 { char s[]=”china”; 3 printf(“s=%s\n”,s[]);} 行号: 3 改为: printf(“s=%s\n”,s); (5)下面程序的功能是按照下面的格式输入a和b的值,计算y=a2+b2并输出。 输入: 3 2 ? 输出: y=13 1 main() 2 { int a,b; 3 int y; 4 scanf(“a=%d,b=%d”,&a,&b); 5 y=a*a+b*b; 6 printf(“y=%d\n”,y); 7 } 行号: 4 改为:scanf(“%d, %d”,&a,&b); ——计算机C语言程序设计的介绍 一、 课程介绍 课程名称:《C程序设计》 学时/学分:72学时/3学分 先修课程:计算机文化基础 适用专业:计算机专业(本科) 开课时间:第三学期开课 开课部门:计算机系 二、 课程性质和任务 《C语言程序设计》是计算机专业的一门专业基础课。 本课程的前导课程有《计算机文化基础》,后续课程有《数据结构》、《面向对象程序设计》。它是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。 对计算机专业和理工类专业来说是一门必修的课程。同时, 这门课程也是“全国非计算机专业学生计算机应用能力水*考试”二级考试的主要语种之一。 课程任务:通过本课程的学习,学生应掌握C语言的基本语法,还应掌握程序设计的基本思想、并通过本课程的学习,使学生掌握传统的结构化程序设计的一般方法,以C为语言基础,培养学生严谨的程序设计思想、灵活的思维方式及较强的动手能力,并以此为基础,让学生逐渐掌握复杂软件的设计和开发手段,为后续专业课程的学习打下扎实的理论和实践基础。 三、教学目标 本课程的教学目标是:通过理论和实践教学,使学生较好地掌握 C语言各方面的知识, 掌握基本的程序设计过程和技巧,具备初步的高级语言程序设计能力, 并能熟练应用 TURBO C集成环境进行C语言的编写、编译与调试,达到省二级考试要求的能应用C语言解决一般编程问题的水*。 三、 考核办法与成绩评定 1、 期末考试采取笔试考核方式,侧重考核学生对C语言的基本语法与程序设计基本思想的`掌握程度。以及考核学生阅读程序、修改程序和编写程序的能力。 2、 采取阶段小测验与期末考核相结合。 3、 阶段小测验与期末考试占期末总成绩的比例为3:7 4、 阶段小测验的安排如下: 第一章至第五章阶段小测验 第六章至第七章阶段小测验(循环控制、数组) 第八章至第九章阶段小测验(函数、预处理命令) 第十章小测验(指针) 第十一章小测验(结构体和共用体) 第十三章小测验(文件) 四、 教材及主要参考书目 1、 教材 《C程序设计》(第三版)谭浩强 著 清华大学出版社 2、 主要参考书目 《C程序设计题解与上机指导》(第三版)谭浩强 编著 清华大学出版社 《全国计算机等级考试二级C语言典型题汇与解析》 中国铁道出版社 《全国计算机等级考试二级C语言程序设计上机考试题型解析》郭速学 等编著 中国水利水电出版社C语言程序设计试题及参考答案3篇扩展阅读
C语言程序设计试题及参考答案3篇(扩展1)
C语言程序设计模拟试题及答案1
C语言程序设计试题及参考答案3篇(扩展2)
C语言程序设计期末试题及答案1
C语言程序设计期末试题及答案2
C语言程序设计试题及参考答案3篇(扩展3)
C语言程序设计试题及答案1
C语言程序设计试题及参考答案3篇(扩展4)
c语言程序设计心得1
c语言程序设计心得2
c语言程序设计心得3
c语言程序设计心得4
c语言程序设计心得5
C语言程序设计试题及参考答案3篇(扩展5)
C语言程序设计(陈明晰著)课后答案下载1
C语言程序设计试题及参考答案3篇(扩展6)
大学《C语言》试题及答案1
C语言程序设计试题及参考答案3篇(扩展7)
计算机C语言程序设计的介绍1