文档库 最新最全的文档下载
当前位置:文档库 › C++编程练习题大全(带答案)

C++编程练习题大全(带答案)

C++编程练习题大全(带答案)
C++编程练习题大全(带答案)

一、简单问题:

5. 编程计算: 1!+2!+3!+…+20!,并将结果输出.输出格式:

1!+2!+3!+…+20!= 表达式的值

package moreEasy;

public class The5th {

public static void main(String[] args) {

long sum=0;

for(int i=1;i<=20;i++){

long r=1;

for(int j=1;j<=i;j++){

r*=j;

}

sum=sum+r;

//System.out.print(" r="+r);

if(i<20)

System.out.print(i+"!+");

else

System.out.print(i+"!="+sum);

}

}

}

1. 编程求下列式子的值,

y=1-1/2+1/3-1/4+…+1/99-1/100

并将结果输出,格式为: 1-1/2+1/3-1/4+…+1/99-1/100 = 表达式的值

public class Porg {

public static void main(String[] args) {

double sum=0;

for(double i=1;i<=100;i++)

{

sum=sum+Math.pow(-1, i-1)*(1/i);

}

System.out.print(" 1-1/2+1/3-1/4+…+1/99-1/100="+sum);

}

}

2. 请编程实现:由键盘输入的任意一组字符,统计其中大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。

import java.util.Scanner;

public class Prog2 {

public static void main(String[] args) {

int m=0,n=0;

String str=cin.nextLine();

for(int i=0;i

{

if(str.charAt(i)>'A'&&str.charAt(i)<='Z')

m++;

else

n++;

}

if(m>n)

{

System.out.println(m);

}

else

System.out.println(n);

}

}

3. 编程,求全部水仙花数。所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。如:153 = 13 + 53+ 33。

public class Prog3 {

public static void main(String[] args) {

int a,b,c;

for(a=1;a<=9;a++)

{

for(b=0;b<=9;b++)

{

for(c=0;c<=9;c++)

{

if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)

System.out.println(a*100+b*10+c);

}

}

}

}

4. 请编制程序判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。

import java.util.Scanner;

public class Prog4 {

public static void main(String[] args) {

Scanner cin=new Scanner(System.in);

int i=cin.nextInt();

if( i%5==0&&i%7==0)

else

System.out.print("no");

}

}

5. 请编程实现:对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为‘A’,80—89分为‘B’,70—79分为‘C’,60—69分为‘D’,60分以下为‘E’。

import java.util.Scanner;

public class Prog5 {

public static void main(String[] args) {

Scanner cin=new Scanner(System.in);

int m=cin.nextInt();

if(m>=60&&m<=69)

System.out.print("D");

else

if(m>=70&&m<=79)

System.out.print("C");

else

if(m>=80&&m<=89)

System.out.print("B");

else

if(m>=90)

System.out.print("A");

else

System.out.print("E");

}

}

6. 输入一行字符,将其中的字母变成其后续的第3个字母,输出。例:a→d,x → a;y → b;编程实现。

import java.util.Scanner;

public class Prog6 {

public static void main(String[] args) {

char[] zimu=new

char[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q',' r','s','t','u','v','w','x','y','z','a','b','c'};

Scanner cin=new Scanner(System.in);

String str=cin.nextLine();

for(int j=0;j

{

for(int i=0;i<29;i++)

{

if(str.charAt(j)==zimu[i])

{

break;

}

}

}

7. 编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词. 例如:1转换成Monday,7转换成Sunday.

import java.util.Scanner;

public class Prog7 {

public static void main(String[] args) {

System.out.print("请输入任意一个1~7之间的整数\n");

Scanner cin=new Scanner(System.in);

int m=cin.nextInt();

if(m==1)

System.out.print("Monday");

else

if(m==2)

System.out.print("Tuesday");

else

if(m==3)

System.out.print("Wensday");

else

if(m==4)

System.out.print("Thuesday");

else

if(m==5)

System.out.print("Friday");

else

if(m==6)

System.out.print("Saturday");

else

System.out.print("Sunday");

}

}

8. 输入三角形的三边a, b, c,判断能否构成三角形. 若能,计算面积.

import java.util.Scanner;

public class Prog8 {

public static void main(String[] args) {

System.out.print("请输入三个整数\n");

Scanner cin=new Scanner(System.in);

int a=cin.nextInt();

int b=cin.nextInt();

int c=cin.nextInt();

{

System.out.print("不能构成三角形\n");

}

else

{

int l=a+b+c;

System.out.print(l);

}

}

}

9. 编程序,输入a,b,c,求方程 ax2+bx+c=0 的解。

import java.util.Scanner;

public class Prog9 {

public static void main(String[] args) {

System.out.print("请输入三个整数\n");

Scanner cin=new Scanner(System.in);

int a=cin.nextInt();

int b=cin.nextInt();

int c=cin.nextInt();

if(a==0)

{

System.out.println(-c/b);

}

else if(b*b-4*a*c>=0)

{

double x1=(-b+Math.pow(1/2, b*b-4*a*c))/(2*a);

double x2=(-b-Math.pow(1/2, b*b-4*a*c))/(2*a);

System.out.println(x1);

System.out.print(x2);

}

else System.out.print("无解");

}

}

10.计算出前20项 fibonacci 数列, 要求一行打印5个数.

一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子?

我们不妨拿新出生的一对小兔子分析一下:

第一个月小兔子没有繁殖能力,所以还是一对;

三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对;

……

依次类推可以列出下表:

经过月数0 1 2 3 4 5 6 7 8 9 10 11 12

幼仔对数0 1 1 2 3 5 8 13 21 34 55 89 144

成兔对数 1 1 2 3 5 8 13 21 34 55 89 144 233

总体对数 1 2 3 5 8 13 21 34 55 89 144 233 377 import java.util.Scanner;

public class Prog10 {

public static void main(String[] args) {

Scanner cin=new Scanner(System.in);

int n=cin.nextInt();

int a=0,b=1,c=1;

if(n==1){System.out.println(a );

System.out.println(b );

System.out.println(c );}

else

{

for(int i=2;i<=n;i++)

{

a=b;

b=c;

c=a+b;

}

System.out.println("幼崽数"+a+"成年兔子书"+ b+"总数"+ c);

}

}

}

11.输出100~10000之间个位数为3的所有素数。

public class Prog11 {

public static void main(String[] args) {

for(int i=103;i<10000;i=i+10)

{

boolean flag=true;

for(int j=2;j

{

if(i%j==0)

{flag=false;break;}

}

if(flag==true){System.out.println(i);}

}

}

}

12. 百钱买百鸡问题:公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元,问一百元买一百只鸡有几种买法.

public class Prog12 {

public static void main(String[] args) {

int m=0;

for(int a=0;a<100;a++)

{

for(int b=0;b<100;b++)

{

for(int c=0;c<100;c++)

if(5*a+3*b+1/3*c==100&&a+b+c==100)

m++;

}

}

System.out.print("一百元买一百只鸡有"+m+"种买法");

}

}

13. 请编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。import java.util.Scanner;

public class Prog13 {

public static void main(String[] args) {

System.out.print("请输入两个整数\n");

Scanner cin=new Scanner(System.in);

int a=cin.nextInt();

int b=cin.nextInt();

if(a*a+b*b>100)

{

System.out.print(a*a+b*b);

}

else

}

}

14. 编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。

如:2345 ,则:计算22+32+42+52

import java.util.Scanner;

public class Prog14 {

public static void main(String[] args) {

System.out.print("请输入任意一个四位正整数\n");

int sum=0;

Scanner cin=new Scanner(System.in);

int a=cin.nextInt();

sum=(a/1000*a/1000)+((a/100)%10*(a/100)%10)+((a/10%100%10)*(a/10%100%10)) +((a%10)*(a%10));

System.out.print(sum);

}

}

15. 有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程. public class Prog15 {

public static void main(String[] args) {

int m=0,sum=1020;

do{

sum=sum/2-2;

m++;

}while(sum>=0);

System.out.print(m+"天以后能卖完");

}

}

public class Prog16 {

public static void main(String[] args) {

int m=0;

for(int C=1;C<200;C++)

{

for(int A=1;A<=200;A++)

{

for(int B=1;B<=200;B++)

{

if(A*A+B*B==C*C)

{System.out.println(C);

A=201;

B=201;

m++;}

}

}

}

System.out.println("个数为:"+m);

}

}

17. 设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),编程,输出所有满足条件的N。

package easy;

public class The17 {

static long s,M;

public static void main(String[] args) {

for(long N=1009;N<=1109;N=N+10){

M=9*N;

s=0;

while(M>0){

s=s*10+M%10;

M=M/10;

if(N==s)

System.out.println(s);

}

}

}

18. 编程,输出555555的约数中最大的三位数。

package easy;

public class The18th {

public static void main(String[] args) {

double a=555555;

long b=0;

//long[] yueShu=new long[555555];

for(long i=1;i<=555555;i++){

if(a%i==0&&i>99&&i<1000){

while(i>b){

b=i;

}

}

}

System.out.println(b);

}

}

19. 编程,输出所有个位数为6且能被31整除的五位数及其个数。

package easy;

public class The19th {

public static void main(String[] args) {

for(long i=10006;i<=99996;i=i+10){

if(i%31==0){

System.out.println(i);

}

}

}

}

20. 编写程序,输入两个整数,和+、-、*、/ 、%之中的任意一个运算符,输出计算结果. package easy;

//import java.util.InputMismatchException;

import java.util.Scanner;

public class The20th {

static Scanner cin=new Scanner(System.in);

public static void main(String[] args) {

int d1,d2;

String str=new String("");

d1=cin.nextInt();

d2=cin.nextInt();

//System.out.println(d1);

//System.out.println(d2);

str=cin1.nextLine();

//System.out.println(str);

//System.out.println(str.charAt(0));

switch(str.charAt(0)){

case '+':{

System.out.println(d1+d2);

break;

}

case '-':{

System.out.println(d1-d2);

break;

}

case '*':{

System.out.println(d1*d2);

break;

}

case '/':{

System.out.println(d1/d2);

break;

}

}

}

/*static int add(int a,int b){

return a+b;

}

static int sub(int a,int b){

return a-b;

}

static int multiply(int a,int b){

return a*b;

}

static int divide(int a,int b){

return (int)(a/b);

}*/

}

21. 计算:1+1/(1+2)+1/(1+2+3)+…+ 1/(1+2+…+n), n由键盘输入。

package easy;

import java.util.Scanner;

public class The21th {

public static void main(String[] args) {

double sum=0,div=0;

Scanner cin=new Scanner(System.in);

int n=cin.nextInt();

for(int i=1;i<=n;i++){

div=div+i;

System.out.println("1/"+div);

sum=sum+1/div;

}

System.out.println(sum);

}

}

22. 编程计算: 1*2*3+3*4*5+…+99*100*101 的值.

package easy;

public class The22th {

public static void main(String[] args) {

long sum=0;

for(int i=1;i+2<=101;i=i+2){

sum=sum+i*(i+1)*(i+2);

}

System.out.println(sum);

}

}

二、比较简单问题:

1. 编一个函数GCD,求两个无符号整数的最大公约数。主函数输入两个正整数m 和 n, 调用GCD,求出m

和n的最大公约数和最小公倍数.并输出。

package moreEasy;

import java.util.Scanner;

public class The1th {

public static void main(String[] args) {

Scanner cin=new Scanner(System.in);

int m=cin.nextInt();

System.out.println(m+"和"+n+"的最大公约数为:"+GCD(m,n));

System.out.println(m+"和"+n+"的最小公倍数为:"+m*n/GCD(m,n));

}

public static int GCD(int a,int b){

int r=0;

for(int i=1;i<=a&&i<=b;i++){

if(a%i==0&&b%i==0&&r

r=i;

}

}

//System.out.println(r);

return r;

}

}

2. 请编程实现:建立一个4*4的二维整型数组,求对角线元素的和。

package moreEasy;

import java.util.Scanner;

public class The2th {

public static void main(String[] args) {

int ewsz[][]=new int[4][4];

Scanner cin=new Scanner(System.in);

for(int i=0;i

for(int j=0;j

ewsz[i][j]=cin.nextInt();

}

}

/*for(int i=0;i

for(int j=0;j

System.out.print(ewsz[i][j]);

if(j==3){

System.out.println("");

}

}

}*/

int sum=0;

for(int i=0;i

sum=sum+ewsz[i][i];

}

System.out.println(sum);

}

}

3. 写一个判断素数的函数prime,在主函数中输入10个整数,调用prime,输出这10个整数中的素数的

累加和。

import java.util.Scanner;

public class The3th {

public static void main(String[] args) {

int[] shu=new int[10];

int sum=0;

Scanner cin=new Scanner(System.in);

for(int i=0;i

shu[i]=cin.nextInt();

}

for(int i=0;i

if(prime(shu[i]))

sum=sum+shu[i];

}

System.out.println(sum);

}

public static boolean prime(int a){

//double b=Math.pow(a, 0.5);

for(int i=2;i

if(a%i==0||a==1){

return false;

}

}

return true;

}

}

4.从键盘上输入若干学生的一门课成绩,存入一个数组中,当输入负数时结束输入. 输出最高成绩和最低成绩及相应的序号。

package moreEasy;

import java.util.Scanner;

public class The4th {

public static void main(String[] args) {

int n,n1=0,max,min;

Scanner cin=new Scanner(System.in);

System.out.print("学生人数");

n=cin.nextInt();

int[] chengJi=new int[n];

for(int i=0;i

chengJi[i]=cin.nextInt();

}

max=chengJi[0];

min=chengJi[0];

for(int j=0;j

max=chengJi[j];

n=j;

}

if(min>chengJi[j]){

min=chengJi[j];

n1=j;

}

}

System.out.println("max="+max+" "+n);

System.out.println("min="+min+" "+n1);

}

}

5. 编程计算: 1!+2!+3!+…+20!,并将结果输出.输出格式:

1!+2!+3!+…+20!= 表达式的值

package moreEasy;

public class The5th {

public static void main(String[] args) {

long sum=0;

for(int i=1;i<=20;i++){

long r=1;

for(int j=1;j<=i;j++){

r*=j;

}

sum=sum+r;

//System.out.print(" r="+r);

if(i<20)

System.out.print(i+"!+");

else

System.out.print(i+"!="+sum);

}

}

}

6. 有一个3 * 4 的矩阵,编程实现:找出该矩阵中每行元素的最大值,存入一个一维数组中。输出原

始矩阵和结果矩阵。

7. 将若干个整数放到一维数组中,找出该数组中的最大值和它的下标。然后将它和数组中的最前面的元

素对换。不明白

package moreEasy;

import java.util.Scanner;

public class The7th {

public static void main(String[] args) {

int[] array=new int[10];

System.out.print("数组长度:");

int n=cin.nextInt();

for(int i=0;i

array[i]=cin.nextInt();

}

int min=array[0];

int max=array[0];

//System.out.println(min);

//System.out.println(max);

for(int i=0;i

if(array[i]

min=array[i];

if(max

max=array[i];

}

System.out.println(min);

System.out.println(max);

}

}

8. 编写一个函数converse,将一维数组中的数逆序存放,不允许使用辅助数组。主函数输入原始数据,

调用converse,实现逆置。并将原数组和逆置后的数组输出

package moreEasy;

import java.util.Scanner;

public class The8th {

public static void main(String[] args) {

converse();

}

public static void converse(){

int[] ar=new int[10];

Scanner cin=new Scanner(System.in);

for(int i=0;i

ar[i]=cin.nextInt();

//if(ar[i]==-1)

//break;

}

for(int j=0;j

System.out.print(ar[j]);

}

System.out.println("");

for(int i=0;i

int a=ar[ar.length-i-1];

ar[ar.length-i-1]=ar[i];

}

for(int j=0;j

System.out.print(ar[j]);

}

}

}

9. 编写函数,将给定的字符串的大写字母转变成小写字母;其它字符不变。主函数输入一个字符串,调

用该函数对其进行转换,分别输出原串和转换之后的串。

package moreEasy;

import java.util.Scanner;

public class The9th {

static String str="";

public static void main(String[] args) {

String str="";

Scanner cin=new Scanner(System.in);

str=cin.nextLine();

zhuanHuan(str);

}

public static void zhuanHuan(String str1){

str=str1;

str=str.toLowerCase();

System.out.println(str);

}

}

10. 编写一个函数,将字符数组a中的全部字符复制到字符数组b中. 不要使用strcpy函数. 主函数输

入任意一个字符串,调该函数,复制出另一个字符串。将两个串输出。

package moreEasy;

import java.util.Scanner;

public class The10th {

public static void main(String[] args) {

Scanner cin=new Scanner(System.in);

String str=cin.nextLine();

char[] aa=new char[str.length()];

char[] bb=new char[str.length()];

for(int i=0;i

aa[i]=str.charAt(i);

}

copy(aa,bb);

for(int i=0;i

System.out.print(aa[i]+" ");

System.out.println("");

for(int i=0;i

System.out.print(bb[i]+" ");

}

}

public static void copy(char[] a,char[] b){

for(int i=0;i

b[i]=a[i];

}

}

}

11. 判断一个N*N的矩阵是否为对称矩阵. 将原矩阵输出,判断结果输出. package moreEasy;

import java.util.Scanner;

public class The11th {

public static void main(String[] args) {

Scanner cin=new Scanner(System.in);

int n=cin.nextInt();

int count=0;

int[][] duiCheng=new int[n][n];

for(int i=0;i

for(int j=0;j

duiCheng[i][j]=cin.nextInt();

}

for(int i=0;i

for(int j=0;j

if(j==n-1)

System.out.print(duiCheng[i][j]+"\n");

else

System.out.print(duiCheng[i][j]+" ");

}

for(int i=0;i

for(int j=0;j

if(duiCheng[i][j]==duiCheng[j][i])

count++;

}

if(count==n*n)

System.out.println("对称矩阵");

else

System.out.println("非对称矩阵");

}

}

12. 给出年、月、日, 计算该日是该年的第几天?package moreEasy;

import java.util.Scanner;

public class The12th {

public static void main(String[] args) {

int n=0;

Scanner cin=new Scanner(System.in);

int y=cin.nextInt();

System.out.println("年");

int m=cin.nextInt();

System.out.println("月");

int d=cin.nextInt();

System.out.println("日");

if(y%4==0&&y%100!=0||y%400==0){

switch(m){

case 1:

n=d;

break;

case 2:

n=d+31;

break;

case 3:

n=d+31+29;

break;

case 4:

n=d+31+29+31;

break;

case 5:

n=d+31+29+31+30;

break;

case 6:

n=d+31+29+31+30+31;

break;

case 7:

n=d+31+29+31+30+31+30;

break;

case 8:

n=d+31+29+31+30+31+30+31;

break;

case 9:

n=d+31+29+31+30+31+30+31+31;

break;

case 10:

n=d+31+29+31+30+31+30+31+31+30;

case 11:

n=d+31+29+31+30+31+30+31+31+30+31;

break;

case 12:

n=d+31+29+31+30+31+30+31+31+30+31+30;

break;

}

}

else{

switch(m){

case 1:

n=d;

break;

case 2:

n=d+31;

break;

case 3:

n=d+31+28;

break;

case 4:

n=d+31+28+31;

break;

case 5:

n=d+31+28+31+30;

break;

case 6:

n=d+31+28+31+30+31;

break;

case 7:

n=d+31+28+31+30+31+30;

break;

case 8:

n=d+31+28+31+30+31+30+31;

break;

case 9:

n=d+31+28+31+30+31+30+31+31;

break;

case 10:

n=d+31+28+31+30+31+30+31+31+30;

break;

case 11:

n=d+31+28+31+30+31+30+31+31+30+31;

break;

case 12:

n=d+31+28+31+30+31+30+31+31+30+31+30;

c练习题(带答案)56648

一、选择题 1.C++语言属于( C )。 A)自然语言 B)机器语言 C)面向对象语言 D)汇编语言2.下面选项中不属于面向对象程序设计特征的是(C) 。 A)继承性 B)多态性 C)相似性 D)封装性 3.可用作C++语言用户标识符的一组标识符是( B )。 A) void define +WORD B) a3_b3 _123 YN C) for -abc Case D) 2a DO sizeof 4.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素 a[2][1]的值为(A)。 A) 0 B) 4 C) 8 D) 6 5.下列情况中,哪一种情况不会调用拷贝构造函数( B ) A)用派生类的对象去初始化基类对象时 B)将类的一个对象赋值给该类的另一个对象时 C)函数的形参是类的对象,调用函数进行形参和实参结合时 D)函数的返回值是类的对象,函数执行返回调用者时 6.以下哪一关键字可用于重载函数的区分(C) A)extern B)static C)const D)virtual 7.下列有关数组的叙述中,正确的是( B ) A)C++中数组的存储方式为列优先存储 B)数组名可以作为实参赋值给指针类型的形参 C)数组下标索引从1开始,至数组长度n结束 D)数组指针的语法形式为:类型名 *数组名[下标表达式]; 8.下列有关继承和派生的叙述中,正确的是( C ) A)派生类不能访问通过私有继承的基类的保护成员 B)多继承的虚基类不能够实例化 C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数 D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现 9.实现运行时多态的机制是( A ) A)虚函数B)重载函数C)静态函数D)模版函数 10.若有下面的函数调用:

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

C语言练习题带详解答案

一单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);

7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3) 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 详见教材P52~53. %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1; /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2 11.如果int a=3,b=4;则条件表达式"a

c练习题带答案

c练习题带答案集团标准化工作小组 #Q8QGGQT-GX8G08Q8-

一、选择题 1.C++语言属于( C )。 A)自然语言 B)机器语言 C)面向对象语言 D)汇编语言2.下面选项中不属于面向对象程序设计特征的是(C) 。 A)继承性 B)多态性 C)相似性 D)封装性 3.可用作C++语言用户标识符的一组标识符是( B )。 A) void define +WORD B) a3_b3 _123 YN C) for -abc Case D) 2a DO sizeof 4.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素 a[2][1]的值为(A)。 A) 0 B) 4 C) 8 D) 6 5.下列情况中,哪一种情况不会调用拷贝构造函数( B ) A)用派生类的对象去初始化基类对象时 B)将类的一个对象赋值给该类的另一个对象时 C)函数的形参是类的对象,调用函数进行形参和实参结合时 D)函数的返回值是类的对象,函数执行返回调用者时 6.以下哪一关键字可用于重载函数的区分(C) A)extern B)static C)const D)virtual 7.下列有关数组的叙述中,正确的是( B ) A)C++中数组的存储方式为列优先存储 B)数组名可以作为实参赋值给指针类型的形参 C)数组下标索引从1开始,至数组长度n结束 D)数组指针的语法形式为:类型名 *数组名[下标表达式]; 8.下列有关继承和派生的叙述中,正确的是( C ) A)派生类不能访问通过私有继承的基类的保护成员 B)多继承的虚基类不能够实例化 C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数 D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现 9.实现运行时多态的机制是( A ) A)虚函数B)重载函数C)静态函数D)模版函数 10.若有下面的函数调用: fun(a+b, 3, max(n-1, b)); 其中实参的个数是( A) A)3 B)4 C)5 D)6 11.下列关于this指针的说法正确的是( B)

c练习题带答案

选择题1. C++语言属于(C)。 A)自然语言B)机器语言C)面向对象语言D)汇编语言 2. 下面选项中不属于面向对象程序设计特征的是(C)。 A)继承性B)多态性C)相似性D)封装性 3. 下列情况中,哪一种情况不会调用拷贝构造函数(B) A)用派生类的对象去初始化基类对象时 B)将类的一个对象赋值给该类的另一个对象时 C)函数的形参是类的对象,调用函数进行形参和实参结合时 D)函数的返回值是类的对象,函数执行返回调用者时 4. 以下哪一关键字可用于重载函数的区分(C) A)extern B)static C)const D)virtual 5. 下列有关数组的叙述中,正确的是(B) A)C++中数组的存储方式为列优先存储 B)数组名可以作为实参赋值给指针类型的形参 C)数组下标索引从1开始,至数组长度n结束 D)数组指针的语法形式为:类型名*数组名[下标表达式]; 6. 下列有关继承和派生的叙述中,正确的是(C) A)派生类不能访问通过私有继承的基类的保护成员 B)多继承的虚基类不能够实例化 C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数 D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实 现 7. 若有下面的函数调用: fun(a+b,3,max(n-1,b)); 其中实参的个数是(A) A)3 B)4 C)5 D)6 8. 下列关于this 指针的说法正确的是(B) A)this 指针存在于每个函数之中 B)在类的非静态函数中this指针指向调用该函数的对象 C)this 指针是指向虚函数表的指针 D)this 指针是指向类的函数成员的指针 9. 在下列关于C++函数的叙述中,正确的是(C) A)每个函数至少要有一个参数B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明D)函数不能自己调用自己 10. 下列运算符中,不能重载的是(C) A)&& B)!= C). D)-> 11. 下面程序的输出结果是(B)

C语言练习题及参考答案

练习题1及参考答案 1. 单项选择题 (1)以下并非C语言的特点的是。 A. C语言简洁和紧凑 B. 能够编制出功能复杂的程序 C. C语言可以直接对硬件进行操作 D. C语言移植性好 【答】B (2)一个C程序的执行是从。 A. main()函数开始,直到main()函数结束 B. 第一个函数开始,直到最后一个函数结束 C. 第一个语句开始,直到最后一个语句结束 D. main()函数开始,直到最后一个函数结束 【答】A (3)在C程序中,main()的位置。 A. 必须作为第一个函数 B. 必须作为最后一个函数 C. 可以任意 D. 必须放在它所调用的函数之后 【答】C (4)一个C程序是由。 A. 一个主程序和若干子程序组成 B. 一个或多个函数组成 C. 若干过程组成 D. 若干子程序组成 【答】B (5)下列说法正确的是。 A. 在执行C程序时不是从main()函数开始的 B. C程序书写格式限制严格,一行内必须写一个语句 C. C程序书写格式比较自由,一个语句可以分行写在多行上 D. C程序书写格式严格要求一行内必须写一个语句,并要求行号 【答】C 2. 填空题 (1)一个C源程序至少有①个main()函数和②个其他函数。【答】①一②若干 (2)任何C语句必须以结束。

【答】分号 (3)C语言源程序的基本单位是。【答】函数 (4)C编译程序的功能是。【答】将C源程序编译成目标代码

练习题2及参考答案 1. 单项选择题 (1)以下字符串为标识符的是。 A. _MY B. 2_2222 C. short D. LINE 5 【答】A (2)下列符号可以作为变量名的是。 A. +a B. *p C. _DAY D. next day 【答】C (3)设c是字符变量,则以下表达式正确的是。 A. c=666 B. c='c' C. c="c" D. c="abcd" 【答】B (4)23+'m'+3.6-123.45/'b'的结果是型数据。 A. char B. double C. int D. long int 【答】3.6和123.45均为double型,运算结果也是double型。本题答案为B。 (5)若变量已正确赋值,以下符合C语言语法的表达式是。 A. a=a+7; B. a=7+b+c,a++ C. int(12.3%4) D. a=a+7=c+b 【答】选项A错误,以分号结尾是一个语句而不是表达式;选项B正确,是一个逗号表达式;选项C错误,因为%求模运算的两个运算数必须均为整数;选项D错误,给一个表达式(a+7)而非变量赋值是不正确的。本题答案为B。 (6)整型变量x=1,y=3,经下列计算后,x的值不等于6的表达式是。 A. x=(x=1+2,x*2) B. x=y>2?6:5 C. x=9-(--y)-(--y) D. x=y*(int)(4.8/2) 【答】选项A的计算过程——x=1+2=3,再计算x=x*2=6;选项B的计算过程——y>2为真,x=6;选项C的计算过程——式中有两个--运算,最后y=1,x=9-1-1=7;选项D的计算过程——x=y*(int)(4.8/2)=y*2=6。本题答案为C。 (7)若定义 int m=7,n=12; 则能得到值为3的表达式是。 A. n%=(m%=5) B. n%=(m-m%5) C. n%=m-m%5 D. (n%=m)-(m%=5) 【答】A、B、C、D选项各表达式的值分别是0、2、2、3。本题答案为D。 (8)以下程序的运行结果是。

C语言基础练习100题(含标准答案)

C语言基础练习100题(含答案) 雷柳青编排 1、下面程序的输出是________ #include 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=b 2、在下列选项中,不正确的赋值语句是________. 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) A 4、字符(char)型数据在微机内存中的存储形式是____. A) 反码B) 补码C) EBCDIC码D) ASCII码 5、设int a=12,则执行完语句a+=a-=a*a后,a的值是________ A) 552 B) 264 C) 144 D) -264 6、执行下面程序中的输出语句后,输出结果是______. #include void main() {int a。 printf("%d\n",(a=3*5,a*4,a+5))。 } A) 65 B) 20 C) 15 D) 10 7、下面程序的输出是__________. #include void main() {int x=023。 printf("%d\n",--x)。 } A) 17 B) 18 C) 23 D) 24 8、下面程序的输出是___________. #include void main() {char ch1,ch2。 ch2='A'+'6'-'3'。 printf("%d,%c\n",ch1,ch2)。 } A) 67,D B) B,C C) C,D D) 不确定的值 9、以下程序的输出结果是________. #include void main() { int x=10,y=10。 printf("%d %d\n",x--,--y)。 } A) 10 10 B) 9 9 C) 9 10 D) 10 9 10、若x和y都是int型变量,x=100,y=200,且有下面的程序片段: printf("%d",(x,y))。 上面程序片段的输出结果是_______. A) 200 B) 100 C) 100 200 D) 输出格式符不够,输出不确定的值 11、阅读下面的程序 #include void main() { int i,j。 i=010。 j=9。 printf("%d,%d",i-j,i+j)。 } 则程序的运行结果是________. A) 1,19 B) -1,19C) 1,17 D) -1,17 12、阅读下面的程序 #include 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,10

c+练习题带答案

c+练习题带答案 This manuscript was revised by the office on December 10, 2020.

一、选择题 1.C++语言属于( C )。 A)自然语言 B)机器语言 C)面向对象语言 D)汇编语言 2.下面选项中不属于面向对象程序设计特征的是(C) 。 A)继承性 B)多态性 C)相似性 D)封装性 3.下列情况中,哪一种情况不会调用拷贝构造函数( B ) A)用派生类的对象去初始化基类对象时 B)将类的一个对象赋值给该类的另一个对象时 C)函数的形参是类的对象,调用函数进行形参和实参结合时 D)函数的返回值是类的对象,函数执行返回调用者时 4.以下哪一关键字可用于重载函数的区分(C) A)extern B)static C)const D)virtual 5.下列有关数组的叙述中,正确的是( B ) A)C++中数组的存储方式为列优先存储 B)数组名可以作为实参赋值给指针类型的形参 C)数组下标索引从1开始,至数组长度n结束 D)数组指针的语法形式为:类型名 *数组名[下标表达式]; 6.下列有关继承和派生的叙述中,正确的是( C ) A)派生类不能访问通过私有继承的基类的保护成员 B)多继承的虚基类不能够实例化 C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数 D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现 7.若有下面的函数调用: fun(a+b, 3, max(n-1, b)); 其中实参的个数是( A) A)3 B)4 C)5 D)6 8.下列关于this指针的说法正确的是( B) A)this指针存在于每个函数之中 B)在类的非静态函数中this指针指向调用该函数的对象 C)this指针是指向虚函数表的指针 D)this指针是指向类的函数成员的指针 9.在下列关于C++函数的叙述中,正确的是(C) A)每个函数至少要有一个参数B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明D)函数不能自己调用自己 10.下列运算符中,不能重载的是(C) A)&& B)!= C). D)-> 11.下面程序的输出结果是(B) #include using namespace std; int i = 0; int fun(int n) { static int a = 2; a++; return a+n; } void main() {

c练习题带答案

一、选择题 1.C++语言属于(C)。 A)自然语言B)机器语言C)面向对象语言D)汇编语言 2.下面选项中不属于面向对象程序设计特征的是(C)。 A)继承性B)多态性C)相似性D)封装性 3.下列情况中,哪一种情况不会调用拷贝构造函数(B) A)用派生类的对象去初始化基类对象时 B)将类的一个对象赋值给该类的另一个对象时 C)函数的形参是类的对象,调用函数进行形参和实参结合时 D)函数的返回值是类的对象,函数执行返回调用者时 4.以下哪一关键字可用于重载函数的区分(C) A)extern B)static C)const D)virtual 5.下列有关数组的叙述中,正确的是(B)

A)C++中数组的存储方式为列优先存储 B)数组名可以作为实参赋值给指针类型的形参 C)数组下标索引从1开始,至数组长度n结束 D)数组指针的语法形式为:类型名*数组名[下标表达式]; 6.下列有关继承和派生的叙述中,正确的是(C) A)派生类不能访问通过私有继承的基类的保护成员 B)多继承的虚基类不能够实例化 C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数 D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现 7.若有下面的函数调用: fun(a+b,3,max(n-1,b)); 其中实参的个数是(A)

A)3 B)4 C)5 D)6 8.下列关于this指针的说法正确的是(B) A)this指针存在于每个函数之中 B)在类的非静态函数中this指针指向调用该函数的对象 C)this指针是指向虚函数表的指针 D)this指针是指向类的函数成员的指针 9.在下列关于C++函数的叙述中,正确的是(C) A)每个函数至少要有一个参数B)每个函数都必须返回一个值C)函数在被调用之前必须先声明D)函数不能自己调用自己10.下列运算符中,不能重载的是(C) A)&& B)!= C). D)-> 11.下面程序的输出结果是(B) #include

C语言基础练习题(含答案)

目录 第1-3章C语言基础知识习题 (2) 1 选择题 (2) 2 填空题 (7) 3 答案及部分解析 (9) 第4章选择结构习题 (11) 1 选择题 (11) 2 填空题 (17) 3 答案及部分解析 (23) 第5章循环结构习题 (26) 1 选择题 (26) 2 填空题: (32) 3 答案及部分解题分析 (39) 第6章数组习题 (41) 1. 单项选择题 (41) 2. 填空题 (44) 3. 判断题 (45) 4. 程序填空题 (45) 5. 阅读程序,分析程序的功能。 (49) 第7章函数习题 (55) 1. 单项选择题 (55) 2. 填空题 (56) 3. 判断题 (57) 4. 程序填空题 (58) 5. 写出下列程序运行结果 (59) 第8章指针习题 (67) 1 选择题 (67) 2 填空题 (69)

第1-3章C语言基础知识习题 1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed C.integer D.Char 8.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 9.一个C程序是由()。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 11.下列说法中,错误的是()。 A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

C语言练习题(带详解答案)

一单项选择题 1、( A)就是构成C语言程序得基本单位、 A、函数 B、过程 C、子程序 D、子例程 2、C语言程序从 C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中得main函数D) 包含文件中得第一个函数 3、以下说法中正确得就是( C )、 A、C语言程序总就是从第一个定义得函数开始执行 B、在C语言程序中,要调用得函数必须在main( )函数中定义 C、C语言程序总就是从main( )函数开始执行 D、C语言程序中得main( )函数必须放在程序得开始部分 4、下列关于C语言得说法错误得就是( B ) 。 A) C程序得工作过程就是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序得三种基本结构就是顺序、选择、循环 D) C程序从main函数开始执行 5、下列正确得标识符就是(C)、 A、—a1 B、a[i]C。a2_i D、int t 5~8题为相同类型题 考点:标识符得命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符得开头 (3)关键字不能作为标识符 选项A中得“—" ,选项B中“[”与“]"不满足(1);选项D中得int为关键字,不满足(3) 6、下列C语言用户标识符中合法得就是( B )。 A)3axB)x C)case D)—e2 E)union 选项A中得标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中得“-”不满足(1); 7、下列四组选项中,正确得C语言标识符就是( C )。 A) %xB) a+b C) a123 D) 123 选项A中得“%” ,选项B中“+"不满足(1);选项D中得标识符以数字开头不满足(2)

C期末练习题带答案

(一)读程序题1.类中包括其他类的对象成员,构造函数中要列出成员对象名带实参,生成该类对 象时,要先调用成员对象的构造函数。如果是成员对象的缺省构造函数可以不列,但生成该类对象时,仍要先调用成员对象的缺省构造函数。 1.如下程序运行时的输出结果是1135。 #include<> classONE { intc; public: ONE():c(0){cout<<1;} ONE(intn):c(n){cout<<3;} }; classTWO:publicONE{ ONEone1; ONE one2; public: TWO(intm):one2(m){cout<<5;} }; voidmain() { TWOt(2); } 二.派生类构造函数中要列出基类名带实参,生成派生类对象时,要先调用基类的构造函数,再调用派生类的构造函数。冲突规则与支配规则。 2.如下程序运行时的输出结果是。 #include<> classA{ public: intx; A(){x=10;} A(inti){x=i;} voidShow(){cout<<"x="<

classC:publicA,publicB{ public: inty; C(inta,intb,intc):A(a),B(b+30){y=c;} voidShow(){cout<<"y="< classA{ public: A(){cout<<"A()\n"; } ~A(){cout<<"~A()\n"; } }; classB{ public: B(){cout<<"B()\n";} ~B(){cout<<"~B()\n"; } }; classC:publicB,publicA{ Aa; public: C() {cout<<"C()\n"; } ~C() {cout<<"~C()\n";} }; voidmain(){ Cc1; } 4.如下程序运行时的输出结果是。 #include<> classA{ public:

C语言习题练习(附答案)

《高级语言程序设计》习题 一.填空题 1. 以下条件表达式可计算1+|a|的值,填空完成语句:a>=0 ?(1+a ):( 1-a ) 2. 函数max 定义的首部为:int max(int x[],int n),该函数完成实现寻找长度为n 的数组x 中的最大元素。若在主函数中有定义:int c,a[10];并要求函数调用后,变量c 存放数组a 中的最大元素,则函数调用语句应为:(c=max(a,10);) 3. 若有int i=5; 则循环语句while(i > = 1) i - -;执行后,i 的值为 (0)。 4. 能正确表示逻辑关系:“0≤a <10”的C 语言表达式是(0<=a && a<10)。 5. 设int a[2][3] = {{2},{3}};则数组元素( a[1][0] )的值为3。 6. 表达式 (int)(3.0/2.0)的值是( 1 )。 7. 有定义: int x=3, y=2; 执行x/=y+1; 语句后x 的值为( 1 ) 。 8. 有定义: int x=2, y=0; 表达式 (!x||y) 的值为( 0 )。 9. 有定义:char str[]= “Hello!”; 则数组str 的长度为( 7 )。 10. 有定义:int i=5; 则循环语句while(i>=1) i=i-2; 执行后变量i 的值为( -1 )。 11. 已知 ‘A ’~ ‘Z ’ 的ASCII 码为65~90,当执行int x= ‘D ’+5; 语句后x 的值为( 73 )。 12. 有定义int a[6]={1,2,3,4,5,6},*p=a; 则*(p+2)的值为( 3 ),*(++P )的值为( 2 )。 13. 如果在调用一个函数过程中,又调用另一个函数,称为函数的( 嵌套 )调用。如果在调用一个函数的过程中又直接或间接地调用该函数本身,称为函数的( 递归 )调用。 14. 若有语句:int b[][2]={1,2,3}; 则数组b 的元素a[1][1]的值是( 0 )。 15. 能正确表示数学表达式) (2c b c a +的C 语言表达式是( 2 * a / (c*(b+c)) )。 二. 选择题(在每题的四个备选答案中,选出一个正确的答案) 1. 以下不能定义为变量名的是: (A) sanf (B) void (C) _2com (D) Go 2. 以下选项中非法的字符常量是: (A) ‘\\’ (B)‘\181’ (C) ‘0’ (D) ‘\xAA ’ 3. 有以下程序: int main() { int k=2,i=2 ; i*=k++; printf(“%d,%d\n”,k,i);

c练习题带答案

c练习题带答案 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

一、选择题 1.C++语言属于( C )。 A)自然语言 B)机器语言 C)面向对象语言 D)汇编语言 2.下面选项中不属于面向对象程序设计特征的是(C) 。 A)继承性 B)多态性 C)相似性 D)封装性 3.下列情况中,哪一种情况不会调用拷贝构造函数( B ) A)用派生类的对象去初始化基类对象时 B)将类的一个对象赋值给该类的另一个对象时 C)函数的形参是类的对象,调用函数进行形参和实参结合时 D)函数的返回值是类的对象,函数执行返回调用者时 4.以下哪一关键字可用于重载函数的区分(C) A)extern B)static C)const D)virtual 5.下列有关数组的叙述中,正确的是( B ) A)C++中数组的存储方式为列优先存储 B)数组名可以作为实参赋值给指针类型的形参 C)数组下标索引从1开始,至数组长度n结束 D)数组指针的语法形式为:类型名 *数组名[下标表达式]; 6.下列有关继承和派生的叙述中,正确的是( C ) A)派生类不能访问通过私有继承的基类的保护成员 B)多继承的虚基类不能够实例化 C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数 D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现 7.若有下面的函数调用: fun(a+b, 3, max(n-1, b)); 其中实参的个数是( A) A)3 B)4 C)5 D)6 8.下列关于this指针的说法正确的是( B) A)this指针存在于每个函数之中 B)在类的非静态函数中this指针指向调用该函数的对象 C)this指针是指向虚函数表的指针 D)this指针是指向类的函数成员的指针 9.在下列关于C++函数的叙述中,正确的是(C) A)每个函数至少要有一个参数B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明D)函数不能自己调用自己 10.下列运算符中,不能重载的是(C) A)&& B)!= C). D)-> 11.下面程序的输出结果是(B) #include using namespace std; int i = 0; int fun(int n) { static int a = 2; a++; return a+n; }

C语言各章节练习题(含答案)

一、C语言概述练习题 选择1.一个C程序的执行是从。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.以下叙述不正确的是。 A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面 3.以下叙述正确的是。 A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 B) 在C程序中,main函数必须位于程序的最前面 C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句 4.一个C语言程序是由。 A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成 二、数据类型、运算符与表达式 选择. 1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 2.下列四组选项中,均不是C语言关键字的选项是。 A) define IF type B) getc char printf C) include case scanf D) while go pow 3.下列四组选项中,均是不合法的用户标识符的选项是。(C语言标识符由字母,数字,下划线组成,开头不能是数字) A) W P_0 do B) b-a goto int C) float la0 _A D) -123 abc TEMP 8.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为。 A) D B) 68 C) 不确定的值 D) C 填空 1.若有以下定义,则计算表达式y+=y-=m*=y后的y值是【1】。-16 int m=5,y=2; 7.若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为【8】,n 的值为【9】。10 6 x+=n++ //若改为x+=++n 则计算后X为11,n为6 10.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a’+‘8’-‘3’的值为【12】。 f 三、简单的C程序设计 选择 1. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 3.阅读以下程序,当输入数据的形式为:25,13,10(注:表示回车),则正确的输出结果为 A 。 main() { int x,y,z;

C语言练习题(带答案)-绝对经典题目

C语言练习题(带答案)-绝对经典题目 1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1

B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai

C练习题库及答案

C选择题部分(共200题) 1、下面程序得输出就是___D______ #include 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=b 2、在下列选项中,不正确得赋值语句就是__D______、 A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法得C语言字符常量就是______A____、 A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9得值就是________D____、 A) true B) 非零值C) 0 D) 1 5、C语言提供得合法得数据类型关键字就是_____B____、 A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中得存储形式就是__D__、 A) 反码B) 补码C) EBCDIC码D) ASCII码 7、C语言程序得基本单位就是_____C______、 A) 程序行B) 语句C) 函数D) 字符 8、设int a=12,则执行完语句a+=a-=a*a后,a得值就是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中得输出语句后,输出结果就是____B__、 #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序得输出就是____B______、 #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序得输出得就是_____C____、 #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定得值 12、已知字母A得ASCII码为十进制得65,下面程序得输出就是______A_____、 #include 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) 不确定得值 13、若要求在if后一对圆括号中表示a不等于0得关系,则能正确表示这一关系得表达式为____D__、 A) a<>0 B) !a C) a=0 D) a 14、以下程序得输出结果就是____D_____、 #include void main() { int x=10,y=10; printf("%d %d\n",x--,--y); } A) 10 10 B) 9 9 C) 9 10 D) 10 9 15、设有如下定义: int x=10,y=3,z; 则语句 printf("%d\n",z=(x%y,x/y)); 得输出结果就是_____D_____、 A) 1 B) 0 C) 4 D) 3 16、为表示关系x≥y≥z,应使用C语言表达式___A___、 A) (x>=y)&&(y>=z) B) (x>=y)AND(y>=z) C) (x>=y>=z) D) (x>=y) & (y>=z) 17、C语言中非空得基本数据类型包括____B____、 A) 整型,实型,逻辑型B) 整型,实型,字符型 C) 整型,字符型,逻辑型 D) 整型,实型,逻辑型,字符型 18、若x与y都就是int型变量,x=100,y=200,且有下面得程序片段: printf("%d",(x,y)); 上面程序片段得输出结果就是____A___、 A) 200 B) 100 C) 100 200 D) 输出格式符不够,输出不确定得值 19、阅读下面得程序 #include void main() { char ch; scanf("%3c",&ch);

相关文档