c语言入门经典习题答案
C语言基础题及答案

C语言基础题及答案1、一个C语言的源程序中[正确答案:A]。
A)必须有一个主函数B)可以有多个主函数C)必须有主函数和其他函数D)可以没有主函数2、关于C程序的主函数,以下描述中正确的是[正确答案:B]。
A)C程序的第一个函数称为主函数,程序从该函数开始运行。
B)C程序的主函数即是main函数,程序从该函数开始运行。
C)C程序可以有多个主函数,程序从第一个主函数开始运行。
D)C程序可以没有主函数,程序从第一个函数开始运行。
3、C程序中,return语句的作用是[正确答案:D]。
A)终止程序运行B)返回到上层循环C)返回到外层结构D)返回到上层函数4、C语言程序的3种基本结构是[正确答案:A]。
A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构C)嵌套结构,递归结构,顺序结构D)循环结构,转移结构,顺序结构5、以下对C程序的描述中正确的是[正确答案:A]。
A)C程序总是从main()函数开始执行。
B)C程序可以从程序中的任何函数开始执行。
C)C程序总是从第一个定义的函数开始执行。
D)C程序中的main()函数必须放在程序的开始部分。
6、关于C程序第1行的包含语句,以下写法中正确的是[正确答案:D]。
A)#include stdio.h B)#include'stdio.h'C)#include(stdio.h)D)#include<stdio.h>7、关于C语言程序,正确的编程流程应该是[正确答案:A]。
A)编辑→保存→编译→运行B)编译→编辑→运行→保存C)保存→运行→编辑→编译D)运行→编译→保存→编辑8、下列的哪个不是C语言的关键字[正确答案:D]。
A)while B)auto C)break D)printf9、下列的哪个不是C语言的算术运算符[正确答案:C]。
A)+B)%C)=D)-10、下列的哪个不是C语言的关系运算符[正确答案:C]。
A)>=B)<=C)=D)!=11、下列的哪个是错误的描述[正确答案:D]。
C语言基础练习100题(含答案)

C语言基础练习100题(含答案)雷柳青编排1、下面程序的输出是________#include<stdio.h>void main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是________.A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C语言字符常量是__________.A) '\t' B) "A" C) 65 D) A4、字符(char)型数据在微机内存中的存储形式是____.A) 反码B) 补码C) EBCDIC码D) ASCII码5、设int a=12,则执行完语句a+=a-=a*a后,a的值是________A) 552 B) 264 C) 144 D) -2646、执行下面程序中的输出语句后,输出结果是______.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 107、下面程序的输出是__________.#include<stdio.h>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 248、下面程序的输出是___________.#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值9、以下程序的输出结果是________.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 910、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是_______.A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值11、阅读下面的程序#include<stdio.h>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是________.A) 1,19 B) -1,19 C) 1,17 D) -1,1712、阅读下面的程序#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是_________.A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1113、若已定义int a,则表达式a=10,a+10,a++的值是___.A) 20 B) 10 C) 21 D) 1114、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是________.A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4515、下面程序的输出结果是________.#include<stdio.h>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,316、下面程序的输出结果是_______.#include<stdio.h>void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A) 1,0 B) 0,1 C) 1,1 D) 0,017、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是_________.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1018、已知有double型变量x=2.5,y=4.7,整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4 的值是_________.A) 2.4 B) 2.5 C) 2.75 D) 019、设有以下语句:int x=10;x+=3+x%3,则x的值是._________A) 14 B) 15 C) 11 D) 12 20、若d为double型变量,则表达式d=1,d+5,d++的值是_______.A) 1 B) 6.0 C) 2.0 D) 1.021、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值__________.A) 0 B) 1 C) 12 D) 622、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是____.A) 0 B) 2 C) 1.5 D) 123、在C语言中,以下叙述不正确的是________.A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用24、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是________.A) 10<a<15 B) a==11||a==12||a==13||a==14 C) a>10&&a<15 D) !(a<=10)&&!(a>=15)25、如果c为字符型变量,判断c是否为空格不能使用________.(假设已知空格ASCII码为32)A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')26、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是________.#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10;printf("%d\n",k);}A) 2 B) 4 C) 1 D) 1027、执行下面程序后,运行结果是________.#include <stdio.h>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=128、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是______.#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值29、运行下面程序时,从键盘输入字母H,则输出结果是________.#include <stdio.h>void main( ){ char ch;ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye!Bye_Bye!30、执行下列程序段后的输出结果是_________.int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<y?y:x);A) 3 B) 2 C) 1 D) 431、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是_____.A) Z B) a C) z D) A32、下面程序的输出结果是________.#include <stdio.h>void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}A) 8 B) 1 C) 9 D) 033、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是_______.#include <stdio.h>void main( ){ int a,b,s;scanf("%d,%d",&a,&b);s=a;if (s<b) s=b;s=s*s;printf("%d\n",s) ;}A) 14 B) 16 C) 18 D) 2034、下列程序的执行结果是_________.#include <stdio.h>void main( ){ int x=0,y=1,z=0;if (x=z=y)x=3;printf("%d,%d\n",x,z);}A) 3,0 B) 0,0 C) 0,1 D) 3,135、能够完成如下函数计算的程序段是______.┌-1 x<0y= ┤0 x=0└ 1 x>0A) y=1; B) if (x>=0)if(x!=0) if(x>0) y=1;if(x>0) y=1; else y=0;else y=0; else y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;if (x>0) y=1; else y=0;else y=-1;36、以下程序的执行结果是________.#include <stdio.h>void main( ){ int x=1,y=0;switch (x){case 1:switch (y){case 0:printf("first\n");break;case 1:printf("second\n");break;}case 2:printf("third\n");}}A) first B) firstsecond thirdC) first D) secondthird37、以下程序的执行结果是________.#include <stdio.h>void main( ){ int a,b,c,d,x;a=c=0;b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;printf("d=%d\n",d);}A) d=20 B) d=10 C) d=15 D) 2538、下列程序执行后的输出结果是________.#include <stdio.h>void main( ){ int x,y=1,z;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D) 出错信息39、有如下程序#include <stdio.h>void main( ){ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;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=240、下面程序的输出结果是_________.#include <stdio.h>void main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 041、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序段执行后,m的值是_________.A) 4 B) 3 C) 2 D) 142、以下程序的输出结果是_________.main( ){ int a=100;if (a>100) printf("%d\n",a>100);else printf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 143、若执行下面的程序从键盘上输入9,则输出结果是.______________#include <stdio.h>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 844、以下程序段运行结果是________.int x=1,y=1,z=-1;x+=y+=z;printf("%d\n",x<y?y:x);A) 1 B) 2 C) 4 D) 不确定的值45、有以下程序#include <stdio.h>void main( ){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是________.A) 2,1 B) 3,2 C) 4,3 D) 2,-146、运行下面程序时,若从键盘输入数据为"123",则输出结果是_______.#include "stdio.h"void main(){ int num,i,j,k,place;scanf("%d",&num);if (num>99)place=3;else if(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch (place){ case 3: printf("%d%d%d\n",k,j,i);break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 D) 3,2,147、执行下列程序后的输出结果是_______.#include <stdio.h>void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);}A) 4 B) 3 C) 2 D) 148、以下条件表达式中能完全等价于条件表达式if(x)中的x 的是____.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)49、若运行下面程序时,给变量a输入15,则输出结果是______.#include <stdio.h>void main( ){ int a,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 15 D) 1050、执行下面程序的输出结果是________.#include <stdio.h>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出****D) 输出####51、为了避免嵌套的if-else语句的二义性,C语言规定else总是与______组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if52、以下程序段__________.x=-1;do{x=x*x;} while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误53、对下面程序段描述正确的是_______.int x=0,s=0;while (!x!=0) s+=++x;printf("%d",s);A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次54、下面程序段的输出结果是_______.x=3;do { y=x--;if (!y) {printf("*");continue;}printf("#");} while(x=2);A) ## B) ##* C) 死循环D)输出错误信息55、下面程序的运行结果是_______.#include<stdio.h>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0);printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D) 4,956、下面程序段的运行结果是__________.int n=0;while (n++<=2)printf("%d",n);A) 012 B) 123 C) 234 D) 错误信息57、下面程序段的运行结果是________.int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8 D)8,2058、下面程序的运行结果是________.#include<stdio.h>void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);}A) 4 B) 3 C) 5 D) 659、下面程序段的运行结果是________.for(x=10;x>3;x--){ if(x%3) x--;--x; --x;printf("%d ",x);}A) 6 3 B) 7 4 C) 6 2 D) 7 3 60、下面程序的运行结果是________.#include<stdio.h>void main( ){ int a,b;a=-1;b=0;do {++a;++a;b+=a;} while(a<9);printf("%d\n",b);}A) 34 B) 24 C) 26 D) 2561、下面程序段的运行结果是___________.for(i=1;i<=5;)printf("%d",i);i++;A) 12345 B) 1234 C) 15 D) 无限循环62、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int n=4;while (n--) printf("%d ",n--);}A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 063、以下程序运行后的输出结果是________.#include<stdio.h>void main(){ int i=10,j=0;do{ j=j+1; i--;}while(i>2);printf("%d\n",j);}A) 50 B) 52 C) 51 D) 864、有如下程序#include<stdio.h>void main(){ int x=23;do{ printf("%d",x--);}while(!x);}该程序的执行结果是_______A) 321 B) 23C) 不输出任何内容D) 陷入死循环65、以下程序段的执行结果是_______.int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);A) 12 B) 15 C) 20 D) 2566、下面程序的输出结果是___________.#include<stdio.h>void main( ){ int i;for(i=1;i<6;i++){ if (i%2!=0) {printf("#");continue;}printf("*");}printf("\n");}A) #*#*# B) ##### C) ***** D) *#*#*67、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d %d ",x--,y);}A) 10 1 9 2 B) 9 8 7 6C) 10 9 9 0 D) 10 10 9 168、执行以下程序后,输出的结果是__________.#include<stdio.h>void main( ){ int y=10;do {y--;}while (--y);printf("%d\n",y--);}A) -1 B) 1C) 8D) 069、有如下程序#include<stdio.h>void main( ){ int n=9;while(n>6) {n--;printf("%d",n);}} 该程序段的输出结果是__________.A) 987 B) 876 C) 8765 D) 987670、有如下程序#include<stdio.h>void main( ){ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf("%d\n",sum);}该程序的执行结果是___________.A) 6 B) 3 C) 死循环D) 071、以下循环体的执行次数是_______#include<stdio.h>void main( ){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2 C) 1 D) 072、在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为________.#include <stdio.h>void main( ){ char ch;while ((ch=getchar( ))!='\n'){ if (ch>='A' && ch<='Z') ch=ch+32;else if (ch>='a' && ch<'z') ch=ch-32;printf("%c",ch);}printf("\n");}A) ABCdef B) abcDEF C) abc D) DEF73、下面程序的输出结果是__________.main( ){int i,k=0, a=0, b=0;for(i=1;i<=4;i++){k++;if (k%2==0) {a=a+k; continue;}b=b+k;a=a+k;}printf("k=%d a=%d b=%d\n",k,a,b);}A) k=5 a=10 b=4 B) k=3 a=6 b=4C) k=4 a=10 b=3 D) k=4 a=10 b=474、执行下面程序段后,k的值是_________.int i,j,k;for(i=0,j=10;i<j;i++,j--)k=i+j;A) 9 B) 11 C) 8 D) 1075、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。
C语言入门试题及答案

C语言入门试题及答案1.int a;()A、声明一个整型变量a。
(正确答案)B、声明一个实型变量a。
2.float b;()A、声明一个实型变量b。
(正确答案)B、声明一个整型变量b。
3.char c;()A、声明一个字符型的变量c。
(正确答案)B、声明一个整型的变量c。
4.int a=66;()A、声明一个整型的变量a,并给它赋值为66。
(正确答案)B、声明a等于66。
5.float b=2.5;()A、声明一个实型的变量b并给它赋值2.5。
(正确答案)B、声明b等于2.56.char c='m';()A、上面一个字符型的变量,c给它赋值m。
(正确答案)B、声明c等于m7.int i,j,k;()A、声明三个整型的变量分别是ijk。
(正确答案)B、声明三个实型的变量分别是ijk。
8.scanf("%d",&a);()A、从键盘输入一个值,赋给整形变量a(正确答案)B、打印整型变量a的值9.printf("%d",a);()A、按整型的格式输出变量a。
(正确答案)B、从键盘输入一个值,赋值给a10.scanf("%d%d",&a,&b);()A、从键盘输入两个值,依次赋给整形变量a和b。
(正确答案)B、输出两个整形变量ab。
11.printf("%d,%d",a,b);()A、输出两个整形变量ab。
(正确答案)B、从键盘输入两个值,依次赋给整形变量a和b。
12.scanf("%d%f",&a,&b);()A、从键盘输入两个值,第一个赋给整型变量a,第二个赋给浮点型变量b。
(正确答案)B、输出两个变量,一个是整形变量,a一个是实型变量b。
13.printf("%d,%f",a,b);()A、输出两个变量,一个是整型变量,a一个是实型变量b。
c语言基础试题库及答案

c语言基础试题库及答案一、选择题1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言的标准数据类型?A. intB. floatC. charD. string答案:D3. 在C语言中,用于实现循环的关键字是:A. whileB. forC. ifD. switch答案:A、B4. C语言中,用于定义函数的关键字是:A. functionB. defC. voidD. int答案:C5. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. variable_2D. int答案:B、C二、填空题1. C语言中,________关键字用于定义一个数组。
答案:int2. 在C语言中,________关键字用于定义一个指针。
答案:*3. C语言中,________关键字用于定义一个函数。
答案:int4. 在C语言中,________运算符用于求两个数的和。
答案:+5. C语言中,________运算符用于判断两个数是否相等。
答案:==三、简答题1. 请简述C语言中函数的定义和调用过程。
答案:函数定义包括函数的返回类型、函数名、参数列表和函数体。
函数调用则是通过函数名和参数列表来调用已定义的函数。
2. 解释C语言中指针的概念及其用途。
答案:指针是一种变量,它存储了另一个变量的内存地址。
指针常用于动态内存分配、数组处理和函数参数传递。
四、编程题1. 编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for(int i = 1; i <= 100; i++) {if(i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d", sum);return 0;}```2. 编写一个C语言函数,用于交换两个整数变量的值。
c语言入门试题及答案

c语言入门试题及答案一、选择题1. 下列哪个是C语言的关键字?A) mainB) outputC) printD) if答案:D2. 在C语言中,用来声明整型变量的关键字是?A) intB) charC) floatD) double答案:A3. 下列哪个符号用于表示“等于”?A) ==B) !=C) >答案:A4. 在C语言中,用来表示字符类型的关键字是?A) intB) charC) floatD) double答案:B5. 下列哪个函数可以输出文本到屏幕上?A) scanfB) getcharC) printfD) gets答案:C二、填空题1. C语言中,整型变量的大小为________个字节。
答案:42. 下列代码的运行结果是什么?int x = 5;int y = 2;printf("%d", x % y);```答案:13. C语言中,用于标识单行注释的符号是________。
答案://4. 下列代码的运行结果是什么?```char name[10] = "John";printf("%s", name);```答案:John三、编程题1. 编写一个程序,接收用户输入的两个整数,并计算它们的和。
```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);int sum = num1 + num2;printf("它们的和为:%d\n", sum);return 0;}```2. 编写一个程序,判断一个输入的整数是否为偶数。
```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是一个偶数。
c语言程序基础考试题及答案

c语言程序基础考试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义字符型变量的关键字是______。
A. intB. charC. floatD. double答案:B2. 下列关于C语言函数的描述,正确的是______。
A. 函数必须有返回值B. 函数可以没有参数C. 函数的返回值类型不能是结构体D. 函数可以没有返回值答案:B3. 在C语言中,以下哪个运算符用于计算两个数的和?A. %B. +C. &&D. ==答案:B4. 以下哪个选项是C语言中的合法整型常量?A. 0x1AB. 0.1C. 1.2e3D. 0123答案:A5. C语言中,以下哪个关键字用于声明一个函数?A. structB. intC. voidD. return答案:C6. 在C语言中,以下哪个选项是正确的字符串字面量?A. "hello"B. 'hello'C. "helloD. 'hello'答案:A7. C语言中,以下哪个选项是正确的注释?A. // this is a commentB. /* this is a comment */C. // this is a commentD. /* this is a comment */答案:A8. C语言中,以下哪个选项是正确的二进制常量表示?A. 0b1010B. 0x2AC. 0101D. 0x10答案:A9. 在C语言中,以下哪个选项是正确的数组声明?A. int arr[] = {1, 2, 3};B. int arr[3] = {1, 2, 3};C. int arr[] = {1, 2};D. int arr[3] = {1};答案:A10. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是______。
《C语言编程基础》习题答案

《C语言编程基础》习题答案C语言编程基础习题答案一、选择题1. 答案:B解析:选项A中的“;”是分号而不是逗号,选项C中漏写了int,选项D中多了一个等号。
2. 答案:C解析:sizeof()函数返回的是指定数据类型的大小,选项A和选项B 中给出的返回值是错误的,选项D中给出的是数组元素的个数。
3. 答案:D解析:在C语言中,0表示假,非0表示真。
4. 答案:A解析:scanf()函数用于从标准输入流中读取数据,并将数据赋值给指定的变量。
5. 答案:B解析:变量名是用来标识内存位置的,它是由字母、数字和下划线组成的,且必须以字母或下划线开头。
二、填空题1. 答案:int解析:函数返回值类型应该与函数定义中的返回值类型一致。
2. 答案:sum+=i;解析:表示将i的值累加到sum中。
3. 答案:float解析:num是一个浮点型变量。
4. 答案:while解析:while循环会循环执行一段代码,直到给定的条件不再满足时退出循环。
5. 答案:true解析:true是C语言中的关键字,表示真。
三、编程题1. 答案:```c#include <stdio.h>int main(){int n, i, sum = 0;printf("请输入一个整数:");scanf("%d", &n);for(i = 1; i <= n; i++){sum += i;}printf("1到%d的和为:%d\n", n, sum);return 0;}```解析:该程序计算了从1到n的整数之和。
2. 答案:```c#include <stdio.h>int main(){int num, i, is_prime = 1;printf("请输入一个整数:");scanf("%d", &num);for(i = 2; i < num; i++){if(num % i == 0){is_prime = 0;break;}}if(is_prime){printf("%d是一个素数\n", num); }else{printf("%d不是一个素数\n", num); }return 0;}```解析:该程序判断一个整数是否为素数。
(完整)C语言基础练习题(含答案),推荐文档

A.long
B._2abc
C.3dmax
D.A.dat
15.以下选项中,合法的实型常数是2E0
D.1.3E
16.已知大写字母 A 的 ASCII 码值是 65, 小写字母 a 的 ASCII 码是 97,则用八进制表示
的字符常量’\101’是( )。
A.字符 A B.字符 a
C.字符 c
D.非法的常量
17.以下选项中, 合法转义字符的选项是( )。
A.’\\’
B.’\018’
C.’xab’
D.’\abc’
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言入门经典习题答案【篇一:c语言入门经典】语言的产生与发展c语言是1972年由美国的dennis ritchie设计发明的,并首次在unix操作系统的 dec pdp-11 计算机上使用。
它由早期的编程语言bcpl (basic combind programming language)发展演变而来。
在1970年,att贝尔实验室的ken hompson根据bcpl语言设计出较先进的并取名为b的语言,最后导致了c语言的问世。
随着微型计算机的日益普及,出现了许多c语言版本。
由于没有统一的标准, 使得这些c语言之间出现了一些不一致的地方。
为了改变这种情况,美国国家标准研究所(ansi)为c语言制定了一套ansi标准,成为现行的c语言标准。
二、c语言的特点c语言发展如此迅速, 而且成为最受欢迎的语言之一,主要因为它具有强大的功能。
许多著名的系统软件, 如pc-dos,dbase Ⅳ都是由c语言编写的。
用c语言加上一些汇编语言子程序, 就更能显示c语言的优势了。
归纳起来c语言具有下列特点:1. c是中级语言它把高级语言的基本结构和语句与低级语言的实用性结合起来。
c 语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2. c是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
c 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3. c语言功能齐全c语言具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。
另外c语言也具有强大的图形功能,支持多种显示器和驱动器。
而且计算功能、逻辑判断功能也比较强大,可以实现决策目的。
4. c语言适用范围大c语言还有一个突出的优点就是适合于多种操作系统,如dos、unix,也适用于多种机型。
三、turbo c的产生与发展borland 公司后来又推出了面向对象的程序软件包turbo c++,它继承发展turbo c 2.0的集成开发环境, 并包含了面向对象的基本思想和设计方法。
习惯上我们也叫它turbo c 3.0。
1991年为了适用microsoft公司的windows 3.0版本,borland公司又将turbo c++作了更新,即turbo c的新一代产品borlandc c++也已经问世了。
四、turbo c 2.0集成开发环境的使用下载完以后,解压缩,双击tc.exe,进入turbo c 2.0集成开发环境中后, 屏幕上显示: ─────────────────────────────--- file edit run compile project options debug break/watch┌────────────edit──────────────┐│ line 1 col 1 insert indent tab file unindent c:noname.c││ ││ ││ ││ ││ ││ ││ ││─────────message─────────────── |│ ││ │└──────────────────────────--─┘f1-help f5-zoom f6-switch f7-trace f8-step f9-make f10-menu───────────────────────────────其中顶上一行为turbo c 2.0 主菜单, 中间窗口为编辑区, 接下来是信息窗口, 最底下一行为参考行。
这四个窗口构成了turbo c 2.0的主屏幕, 以后的编程、编译、调试以及运行都将在这个主屏幕中进行。
下面详细介绍主菜单的内容:(一)、主菜单在turbo c 2.0主屏幕顶上一行, 显示下列内容:file edit run compile project options debug break/watch除edit外, 其它各项均有子菜单, 只要用alt加上某项中第一个字母(即大写字母), 就可进入该项的子菜单中。
1、file(文件)菜单按alt+f可进入file菜单, 该菜单包括以下内容:.load(加载)装入一个文件, 可用类似dos的通配符(如*.c)来进行列表选择。
也可装入其它扩展名的文件, 只要给出文件名(或只给路径)即可。
该项的热键为f3, 即只要在主菜单中按f3即可进入该项, 而不需要先进入file菜单再选此项。
.pick(选择)将最近装入编辑窗口的8个文件列成一个表让用户选择, 选择后将该程序装入编辑区,并将光标置在上次修改过的地方。
其热健为alt+f3。
.new(新文件)说明文件是新的, 缺省文件名为noname.c, 存盘时可改名。
.save(存盘)将编辑区中的文件存盘, 若文件名是noname.c时, 将询问是否更改文件名, 其热键为f2。
.write to(存盘)可由用户给出文件名将编辑区中的文件存盘, 若该文件已存在, 则询问要不要覆盖。
.directory(目录)显示目录及目录中的文件, 并可由用户选择。
.change dir(改变目录)显示当前目录, 用户可以改变显示的目录。
.os shell(暂时退出)暂时退出turbo c 2.0到dos提示符下, 此时可以运行dos 命令, 若想回到turbo c 2.0中,只要在dos状态下键入exit即可。
.quit(退出)退出turbo c 2.0, 返回到dos操作系统中, 其热键为alt+x。
说明: 以上各项可用光标键移动色棒进行选择, 回车则执行。
也可用每一项的第一个大写字母直接选择。
若要退到主菜单或从它的下一级菜单列表框退回均可用esc键,turbo c 2.0所有菜单均采用这种方法进行操作, 以下不再说明。
2、edit(编辑)菜单按alt+e可进入编辑菜单, 若再回车, 则光标出现在编辑窗口,此时用户可以进行文本编辑。
编辑方法基本与wordstar相同, 可用f1键获得有关编辑方法的帮助信息。
与编辑有关的功能键如下:f1 获得turbo c 2.0编辑命令的帮助信息f5 扩大编辑窗口到整个屏幕f6 在编辑窗口与信息窗口之间进行切换f10 从编辑窗口转到主菜单编辑命令简介:pageup 向前翻页pagedn 向后翻页home 将光标移到所在行的开始end 将光标移到所在行的结尾ctrl+y 删除光标所在的一行ctrl+t 删除光标所在处的一个词ctrl+kb 设置块开始ctrl+kk 设置块结尾ctrl+kv 块移动ctrl+kc 块拷贝ctrl+ky 块删除ctrl+kr 读文件ctrl+kw 存文件ctrl+kp 块文件打印ctrl+f1 如果光标所在处为turbo c 2.0库函数,则获得有关该函数的帮助信息ctrl+q[ 查找turbo c 2.0双界符的后匹配符ctrl+q] 查找turbo c 2.0双界符的前匹配符说明:(1). turbo c 2.0的双界符包括以下几种符号:花括符 {和}尖括符和圆括符 (和)方括符 [和]注释符 /*和*/双引号单引号(2). turbo c2.0在编辑文件时还有一种功能,就是能够自动缩进,即光标定位和上一个非空字符对齐。
在编辑窗口中,ctrl+ol为自动缩进开关的控制键。
3、run(运行)菜单按alt+r可进入run菜单, 该菜单有以下各项:.run(运行程序)运行由project/project name项指定的文件名或当前编辑区的文件。
如果对上次编译后的源代码未做过修改,则直接运行到下一个断点(没有断点则运行到结束)。
否则先进行编译、连接后才运行,其热键为ctrl+f9。
.program reset(程序重启)中止当前的调试, 释放分给程序的空间, 其热键为ctrl+f2。
.go to cursor(运行到光标处)调试程序时使用, 选择该项可使程序运行到光标所在行。
光标所在行必须为一条可执行语句, 否则提示错误。
其热键为f4。
.trace into(跟踪进入)在执行一条调用其它用户定义的子函数时,若用trace into项,则执行长条将跟踪到该子函数内部去执行,其热键为f7。
.step over(单步执行)执行当前函数的下一条语句,即使用户函数调用,执行长条也不会跟踪进函数内部,其热键为f8。
.user screen(用户屏幕)显示程序运行时在屏幕上显示的结果。
其热键为alt+f5。
4、compile(编译)菜单按alt+c可进入compile菜单,该菜单有以下几个内容:将一个c源文件编译生成.obj目标文件,同时显示生成的文件名。
其热键为alt+f9。
.make exe file(生成执行文件)此命令生成一个.exe的文件,并显示生成的.exe文件名。
其中.exe文件名是下面几项之一。
(1). 由project/project name说明的项目文件名。
(2). 若没有项目文件名,则由primary c file说明的源文件。
(3). 若以上两项都没有文件名,则为当前窗口的文件名。
.link exe file(连接生成执行文件)把当前.obj文件及库文件连接在一起生成.exe文件。
.build all(建立所有文件)重新编译项目里的所有文件,并进行装配生成.exe文件。
该命令不作过时检查(上面的几条命令要作过时检查,即如果目前项目里源文件的日期和时间与目标文件相同或更早, 则拒绝对源文件进行编译)。
.primary c file(主c文件)当在该项中指定了主文件后,在以后的编译中,如没有项目文件名则编译此项中规定的主c文件,如果编译中有错误,则将此文件调入编辑窗口,不管目前窗口中是不是主c文件。
.get info(获得有关当前路径、源文件名、源文件字节大小、编译中的错误数目、可用空间等信息。
5、project(项目)菜单按alt+p可进入project菜单,该菜单包括以下内容:.project name(项目名)项目名具有.prj的扩展名,其中包括将要编译、连接的文件名。
例如有一个程序由file1.c, file2.c, file3.c组成,要将这3个文件编译装配成一个file.exe的执行文件,可以先建立一个file.prj的项目文件,其内容如下:file1.cfile2.cfile3.c此时将file.prj放入project name项中,以后进行编译时将自动对项目文件中规定的三个源文件分别进行编译。
然后连接成file.exe文件。
如果其中有些文件已经编译成.obj文件,而又没有修改过,可直接写上.obj扩展名。