精华内容
下载资源
问答
  • 6套C语言试卷

    2012-11-13 15:47:13
    D、从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 6.已知字母A的ASCII码为十进制65,且c2为字符型,则执行c2=‘A’+‘6’-‘3’后,c2中的值为( )。 A、D B、68 C、不确定的...
  • 当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值 2 12 以下标识符中,不能作为合法的C用户定义标识符的是()。 D A) For B) Printf C) WORD D) sizeof 2 13 以下标识符中,不能作为合法...

    在这里插入图片描述

    11.以下不正确的叙述是()。

    A)
    在C程序中所用的变量必须先定义后使用

    B)
    程序中,APH和aph是两个不同的变量

    # include <stdio.h>
    
    int main(void)
    {
    	int a = 0x16;
    	int A;
    	A = a;
    	a++;
    
    	printf("a = %d A = %d\n", a, A);
    
    	return 0;
    }
    
    /*
    --------------------------
    在VC++6.0中运行结果为:
    a = 23 A = 22
    --------------------------
    */
    

    C)
    若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变

    D)
    当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值

    • 输入什么类型都可以 只不过最后会以定义的数据类型输出

    12.以下标识符中,不能作为合法的C用户定义标识符的是()。

    A)
    For

    B)
    Printf

    C)
    WORD

    D)
    sizeof
    (关键字同名,其他按照前面的可以得知)

    13.以下标识符中,不能作为合法的C用户定义标识符的是()。

    A)
    answer

    B)
    to

    C)
    signed

    D)
    _if

    14.以下标识符中,不能作为合法的C用户定义标识符的是()。

    A)
    putchar

    B)
    _double

    C)
    _123

    D)
    INT

    15.以下数据中,不正确的数值或字符常量是()。

    A)
    8.9e1.2
    (e后面的指数部分只能是一个整数常量)

    B)
    10

    C)
    0xff00

    D)
    82.5

    16.以下数据中,不正确的数值或字符常量是()。

    A)
    c
    (c变量 )

    • ’c’ & 'C’为字符常量 且ASCII值相差32
    # include <stdio.h>
    
    int main(void)
    {
    	printf("c = %d C = %d\n", 'c', 'C');
    
    	return 0;
    }
    
    /*
    --------------------------
    在VC++6.0中运行结果为:
    c = 99 C = 67
    --------------------------
    */
    

    B)
    66

    C)
    0xaa

    D)
    50

    17.以下运算符中,优先级最高的运算符是()。

    A)
    *= (14)

    B)
    (>= ==(6)此处加 “(” 是因为markdown中>=是引用,原题没有“(”

    C)
    (类型)
    (2)(括号优先级最高)

    D) (4)
    +

    18.以下运算符中,优先级最高的运算符是()。

    A)
    ||

    B)
    %

    C)
    !

    d)

    19.以下运算符中,优先级最高的运算符是()。

    A)

    B)
    !=

    C)
    *(乘号)

    D)
    ()

    2
    20

    以下叙述中不正确的是()。

    A)
    一个好的程序应该有详尽的注释

    B)
    在C程序中,赋值运算符的优先级最低
    (逗号运算符最低级)

    C)
    在C程序中,j++;是一条赋值语句

    D)
    C程序中的#include和#define均不是C语句

    21.设C语言中,int类型数据占2个字节,则long类型数据占()。

    **一般 int 2byte char 1byte double 8byte **

    A)
    1个字节

    B)
    2个字节

    C)
    4个字节

    D)
    8个字节

    22.设C语言中,int类型数据占2个字节,则short类型数据占()。

    A)
    1个字节

    B)
    2个字节

    C)
    4个字节

    D)
    8个字节

    23.C语言中,double类型数据占()

    A)
    1个字节

    B)
    2个字节

    C)
    4个字节

    D)
    8个字节

    24.C语言中,char类型数据占()。

    A)
    1个字节

    B)
    2个字节

    C)
    4个字节

    D)
    8个字节

    25.设C语言中,int类型数据占2个字节,则unsigned类型数据占()。

    A)
    1个字节

    B)
    2个字节

    C)
    4个字节

    D)
    8个字节

    26.下列程序的输出结果是()。

    // 下列程序
    main()
    {
    	char c1 = 97, c2 = 98;
    	printf("%d %c\n",c1, c2);	// %c转为字符型 98对应 b	(ASCII)
    }
    
    /*
    在VC++6.0中运行结果为:
    97 b
    */
    
    

    A)
    97 98

    B)
    97 b

    C)
    a 98

    D)
    a b

    27.执行下列语句后变量x和y的值是()y=10;x=y++;

    (y++ 先运算后加减,x=10 y=11)
    (若改为++y 先加减后运算,y=11, x=11)

    A)
    x=10,y=10

    B)
    x=11,y=11

    C)
    x=10,y=11

    D)
    x=11,y=10

    28.下列数据中,为字符串常量的是()。

    A)
    A

    B)
    “house”

    C)
    How do you do.

    D)
    $abc

    29.先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是()。

    A)
    c=‘a’;

    B)
    c=“a”;

    C)
    c=“97”;

    D)
    C=‘97’

    30.下列语句的结果是()

    main()
    {
    	int j;
    	j = 3;
    	printf("%d,", ++j);		// 两句的目的都是 j = j+1;
    	printf("%d", j++);
    }
    

    A)
    3,3

    B)
    3,4

    C)
    4,3

    D)
    4,4

    31.设a=12,且a定义为整型变量。执行语句a+=a-=a*=a;后a的值为()。

    a *= a a = 144
    a -= a a = 0
    a += a a = 0

    A)
    12

    B)
    144

    C)
    0

    D)
    132

    32.已知year为整型变量,不能使表达式(year%4==0&&year%100!=0)||year%400==0的值为“真”的数据是()。

    闰年判断(考试必考(year%4==0&&year%100!=0)||year%400==0

    A)
    1990

    B)
    1992

    C)
    1996

    D)
    2000

    33.下列运算符中,不属于关系运算符的是()。

    A)
    (<)

    B)
    (>)

    C)
    (>=)

    D)
    (!)

    34.假设所有变量均为整型,表达式:a=2,b=5,a>b?a++:b++,a+b的值是()。

    a>b?a++:b++条件运算符(三目运算符)
    ,a>b?a++:b++,a+b 逗号运算符
    a>b 不成立执行b++ 所以b=6 a+b=8 a+b的值赋给整个运算式子

    A)
    7

    B)
    8

    C)
    9

    D)
    2

    35.以下不符合C语言语法的赋值语句是()。

    A)
    a=1,b=2
    缺分号

    B)
    ++j;

    C)
    a=b=5;

    D)
    y=(a=3,6*5);

    36.以下不符合C语言语法的语句是()。

    A)
    j++;

    B)
    j=j=5;

    C)
    k=2 * 4,k*4;

    D)
    y=float(j);
    强制类型转换y=(float)(j);

    37.执行下列程序后,其输出结果是()。

    // 程序如下
    main()
    {
    int a = 9;
    a += a -= a + a;
    printf("%d\n",a);
    }
    
    /*
    执行过程:
    a -= 18; ----> a = a-18 = -9; ----> a = -9;
    a += -9; ----> a = a+(-9) = -18; ----> a = -18;
    */
    

    A)
    18

    B)
    9

    C)
    -18

    D)
    -9

    38.下列语句的输出结果是()。printf("%d\n",(int)(2.5+3.0)/3);

    / 用法:1.当被除数、除数有一个为浮点数 则输出的结果为浮点数
    2.取整用法

    A)
    有语法错误不能通过编译

    B)
    2

    C)
    1
    (int)强制类型转换

    D)
    0

    39.下列程序的输出结果是()。main() {int a=7,b=5; printf("%d\n",b=b/a);}

    A)
    0

    B)
    5

    C)
    1

    D)
    不确定值

    40.下列程序的输出结果是()。main() {int a=011;printf("%d\n",++a);}
    C

    A)
    12

    B)
    11

    C)
    10
    (八进制转换)

    D)
    9

    41.下列程序的输出结果是()。main() { printf("%d\n",null);}

    A)
    0

    B)
    变量无定义
    (原则:先定义后使用)

    C)
    -1

    D)
    1

    42.若int类型数据占两个字节,则下列语句的输出为()。int k=-1; printf("%d,%u\n",k,k);

    补码存储: %u无符号整型 两字节 16位 2^16 = 65535

    A)
    -1,-1

    B)
    -1,32767

    C)
    -1,32768

    D)
    -1,65535

    43.若k,g均为int型变量,则下列语句的输出为()。k=017; g=111; printf("%d\t",++k); printf("%x\n",g++);

    k = 8+7 = 15
    g = 111

    111的16进制为6F

    A)
    15 6f

    B)
    16 70

    C)
    15 71

    D)
    16 6f

    44.若k为int型变量,则以下程序段的执行结果是()。k=-8567; printf("|%06D|\n",k);

    A)
    格式描述符不合法,输出无定值

    B)
    输出为|%06D|
    (整型输出要用%d)

    C)
    输出为|0-8567|

    D)
    输出为|-8567|

    45.若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),则以下程序段的执行结果是()。ch=‘a’; k=12; printf("%x,%o,",ch,ch); printf(“k=%%d\n”,k);

    ==转义字符%%d ==

    A)
    因变量类型与格式描述符的类型不匹配,输出无定值

    B)
    输出项与格式描述符个数不符,输出为零值或不定值

    C)
    61,141,k=%d

    D)
    61,141,k=%12

    46.若有以下定义:char s=’\092’; 则该语句()。

    A)
    使s的值包含1个字符

    B)
    定义不合法,s的值不确定
    “字符串”--------- '单个字符’

    C)
    使s的值包含4个字符

    D)
    使s的值包含3个字符

    47.若a是float型变量,b是unsigned型变量,以下输入语句中合法的是()。

    A)
    scanf("%6.2f%d",&a,&b); scanf()不允许指定精度

    B)
    scanf("%f%n",&a,&b); %n

    C)
    scanf("%f%3o",&a,&b);

    D)
    scanf("%f%f",&a,&b); 无符号整型 %f 浮点数是实型

    48.已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为()。char a=‘a’; a–;printf("%d,%c\n",a+‘2’-‘0’,a+‘3’-‘0’);
    C

    A)
    b,c

    B)
    a–运算不合法,故有语法错

    C)
    98,c

    D)
    格式描述和输出项不匹配,输出无定值

    49.下列程序的输出结果为()。main() {int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf("%f\n",x);}

    A)
    27.000000

    B)
    27.500000

    C)
    28.000000

    D)
    28.500000

    50.若给定条件表达式(M)?(a++):(a–),则其中表达式M()。

    A)
    和(M==0)等价

    B)
    和(M==1)等价

    C)
    和(M!=0)等价
    非零即真

    D)
    和(M!=1)等价

    51.以下程序的输出结果是()。main() {int i,j,k,a=3,b=2; i=(–a==b++)?–a:++b; j=a++;k=b; printf(“i=%d,j=%d,k=%d\n”,i,j,k);}

    /*
    1.执行(--a==b++); 首先成立 ,执行后 a = 2 b = 3
    2.执行--a; 执行后a = 1 , i = 1;
    3.执行j = a++; 执行后 j = 1; a = 2;
    4.执行 k = b; 执行后 k = 3; 
    
    总结:i = 1; j = 1; k = 3;
    */
    

    A)
    i=2,j=1,k=3

    B)
    i=1,j=1,k=2

    C)
    i=4,j=2,k=4

    D)
    i=1,j=1,k=3

    52.a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是()。

    A)
    ab/ab==1

    B)
    a/b*b/a==1

    C)
    a/b*b+a%b==a (√)

    (5/3*3 + 5%3 = (5/3)3 + 5%3=13 + 5%3 = 3 + 5%3 = 3+2 = 5 C正确)

    D)
    a/b*b==a

    53.为了提高程序的运行速度,在函数中对于整型或指针可以使用()型的变量。

    A)
    auto

    B)
    register
    (寄存器运行速度快)

    C)
    static

    D)
    extern

    54.以下程序的输出结果为()。main() {int i=010,j=10; printf("%d,%d\n",++i, j- -);}

    A)
    11,10

    B)
    9,10

    C)
    010,9

    D)
    10,9

    55.C 语言中以下几种运算符的优先次序()的排列是正确的。

    A)
    由高到低为:!,&&,||,算术运算符,赋值运算符

    B)
    由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符

    C)
    由高到低为:算术运算符,关系运算符,赋值运算符,!,&&,||

    D)
    由高到低为:算术运算符,关系运算符,!,&&,||,赋值运算符

    56.设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。

    A)
    552

    B)
    144

    C)
    264

    D)
    -264

    57.在win TC运行环境中经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在微机上的值分别为()。char x=65;float y=7.3; int a=100; double b=4.5;

    A)
    2,2,2,4

    B)
    1,2,2,4

    C)
    1,4,2,8

    D)
    2,4,2,8

    58.用下列语句定义a,b,c,然后执行b=a、c=‘b’+b,则b,c的值是()。 long a=0xffffff; int b; char c;

    a=0xffffff = -1

    A)
    0ffffff 和0x61

    B)
    -1和98

    C)
    -1和97

    D)
    指向同一地址

    59.执行下列语句后,a和b的值分别为()。int a,b; a=1+‘a’; b=2+7%-4-‘A’;

    A)
    -63,-64

    B)
    98,-60

    C)
    1,-60

    D)
    79,78

    60.C语言中要求对变量作强制定义的主要理由是()。

    A)
    便于移植

    B)
    便于写文件

    C)
    便于编辑预处理程序的处理

    D)
    便于确定类型和分配空间

    61.以下程序的输出结果是()。main() {float x=3.6; int i; i=(int)x; printf(“x=%f,i=%d\n”,x,i);}

    A)
    x=3.600000,i=4

    B)
    x=3,i=3

    C)
    x=3.600000,i=3

    D)
    x=3 i=3.600000

    62.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。 int x=1,y=2,z=3;

    A)
    2

    B)
    3

    C)
    6

    D)
    5

    63.以下程序的运行结果是()。main(){ int i=1,sum=0; while(i<10) sum=sum+1;i++; printf(“i=%d,sum=%d”,i,sum);}

     while(i<10)  {sum=sum+1;i++};	// {}必须有否则 i++一直执行程序报错
    

    D

    A)
    i=10,sum=9

    B)
    i=9,sum=9

    C)
    i=2,sum=1

    D)
    运行出现错误

    64.以下程序的运行结果是()。

    main() 
    { 
     	int n;
    	for(n=1;n<=10;n++)
    	{ 
    	 	if(n%3==0) continue; 	// 3的倍数跳过
    	 	 printf("%d",n);
         }
    }
    

    A)
    12457810

    B)
    369

    C)
    12

    D)
    1234567890

    65.在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式()。

    A)
    只能用逻辑表达式

    B)
    只能用关系表达式

    C)
    只能用逻辑表达式或关系表达式

    D)
    可用任意表达式

    66.在以下给出的表达式中,与 do–while(E)语句中的(E)不等价的表达式是()。

    C

    A)
    (!E==0)

    B)
    (E>0||E<0)

    C)
    (E==0)

    D)
    (E!=0)

    67.假定所有变量均已正确定义,下列程序段运行后x的值是()。k1=1;k2=2;k3=3;x=15;if(!k1) x–;else if(k2) x=4; else x=3;

    A)
    14

    B)
    4

    C)
    15

    D)
    3

    68.执行下列语句后的输出为()。 int j=-1; if(j<=1) printf("****\n"); else printf("%%%%\n");

    A)
    ****

    B)
    %%%%

    C)
    %%%%c

    D)
    有错,执行不正确

    69.下列程序的输出结果是()。

    main()
    { 
    	int  x=1,y=0,a=0,b=0;
     	switch(x)		// x = 1;
     	    {   
     	       case  1:switch(y)   // y = 0;
     	    {  
     	       case  0:a++;break;	// a = 1;
     	       
     	       case  1:b++;break; 
     	    } 			// 类似电梯程序进入后一直执行 直到有跳出的标志
     	       case  2:a++;b++;break;	// a = 2; b = 1;
     	       
     	       case  3:a++;b++;break; 
     	    }  
      printf("a=%d,b=%d\n",a,b);
    }
    

    A)
    a=1,b=0

    B)
    a=2,b=1

    C)
    a=1,b=1

    D)
    a=2,b=2

    70.在C语言中,为了结束由while语句构成的循环,while后一对圆括号中表达式的值应该为()。

    A)
    0

    B)
    1

    C)
    True

    D)
    非0

    71.下列程序的输出为()。main() { int y=10; while(y- -); printf(“y=%d\n”,y);}
    D

    A)
    y=0

    B)
    while构成无限循环

    C)
    y=1

    D)
    y=-1

    72.C语言的if语句嵌套时,if与else的配对关系是()。

    A)
    每个else总是与它上面的最近的if配对

    B)
    每个else总是与最外层的if配对

    C)
    每个else与if的配对是任意的

    D)
    每个else总是与它上面的if配对

    73.设j和k都是int类型,则for循环语句 for(j=0,k=-1;k=1;j++,k++) printf("****\n");()。

    A)
    循环结束的条件不合法

    B)
    是无限循环

    C)
    循环体一次也不执行

    D)
    循环体只执行一次

    74.下列数组说明中,正确的是()。

    二维数组必须有列

    A)
    int array[][4];

    B)
    int array[][];

    C)
    int array[][][5];

    D)
    int array[3][];

    75.下列数组说明中,正确的是()。

    考点:数组的初始化,定义时直接初始化其他情况错误

    A)
    static char str[]=“China”;

    B)
    static char str[]; str=“China”;

    C)
    static char str1[5],str2[]={“China”}; str1=str2;

    D)
    static char str1[],str2[];str2={“China”}; strcpy(str1,str2);

    76.下列定义数组的语句中正确的是()。

    A)
    #define size 10 char str1[size],str2[size+2];

    B)
    char str[]; 未初始化

    C)
    int num[‘10’];

    D)
    int n=5; int a[n][n+2]; C D选项 错误是:数组名[常量表达式]

    77.下列定义数组的语句中不正确的是()。

    A)
    static int a[2][3]={1,2,3,4,5,6};

    B)
    static int a[2][3]={{1},{4,5}};

    C)
    static int a[][3]={{1},{4}};

    D)
    static int a[][]={{1,2,3},{4,5,6}};

    78.下列语句中,不正确的是()。

    A)
    static char a[2]={1,2};

    B)
    static int a[2]={‘1’,‘2’};

    C)
    static char a[2]={‘1’,‘2’,‘3’};

    D)
    static char a[2]={‘1’};

    79.若输入ab,程序运行结果为()。main() { static char a[3]; scanf("%s",a); printf("%c,%c",a[1],a[2]); }

    a[0] = ‘a’ a[1] = ‘b’ a[2] = '0’

    A)
    a,b

    B)
    a,

    C)
    b,

    D)
    程序出错

    80.下列说法不正确的是()。

    局部变量只能在函数内部作用

    A)
    主函数main中定义的变量在整个文件或程序中有效

    B)
    不同函数中,可以使用相同名字的变量

    C)
    形式参数是局部变量

    D)
    在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效

    81.关于return语句,下列正确的说法是()。

    A)
    不能在主函数中出现且在其他函数中均可出现

    B)
    必须在每个函数中出现

    C)
    可以在同一个函数中出现多次

    D)
    只能在除主函数之外的函数中出现一次

    82.在C语言的函数中,下列正确的说法是()。

    A)
    必须有形参

    B)
    形参必须是变量名

    C)
    可以有也可以没有形参

    D)
    数组名不能作形参

    83.在C语言程序中()。

    A)
    函数的定义可以嵌套,但函数的调用不可以嵌套

    B)
    函数的定义不可以嵌套,但函数的调用可以嵌套

    C)
    函数的定义和函数调用均可以嵌套

    D)
    函数的定义和函数调用不可以嵌套

    84.C语言执行程序的开始执行点是()。

    A)
    程序中第一条可以执行语言

    B)
    程序中第一个函数

    C)
    程序中的main函数

    D)
    包含文件中的第一个函数

    85.C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为()。

    A)
    void

    B)
    double

    C)
    int

    D)
    char

    86.C语言程序中,当调用函数时()。

    A)
    实参和形参各占一个独立的存储单元

    B)
    实参和形参可以共用存储单元

    C)
    可以由用户指定是否共用存储单元

    D)
    计算机系统自动确定是否共用存储单元

    87.数组名作为实参数传递给函数时,数组名被处理为()。

    A)
    该数组的长度

    B)
    该数组的元素个数

    C)
    该数组的首地址

    D)
    该数组中各元素的值

    88.以下描述中,正确的是()。

    A)
    预处理是指完成宏替换和文件包含中指定的文件的调用

    B)
    预处理指令只能位于C源文件的开始

    C)
    C源程序中凡是行首以#标识的控制行都是预处理指令

    D)
    预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备

    89.以下对C语言函数的描述中,正确的是()

    A)
    C程序必须由一个或一个以上的函数组成

    B)
    C函数既可以嵌套定义又可以递归调用

    C)
    函数必须有返回值,否则不能使用函数 (void)

    D)
    C程序中有调用关系的所有函数必须放在同一个程序文件中 (项目中)

    90.以下函数调用语句中实参的个数是()。 exce((v1,v2),(v3,v4,v5),v6);

    A)
    3

    B)
    4

    C)
    5

    D)
    6

    91.以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));

    A)
    2

    B)
    3

    C)
    5

    D)
    语法错误

    92.C语言中函数调用的方式有()。

    A)
    一种:函数调用作为语句

    B)
    一种:函数调用作为函数表达式

    C)
    两种:函数调用作为语句或函数表达式

    D)
    三种:函数调用作为语句、函数表达式或函数参数

    93.执行下面程序后,输出结果是()。

    # include <stdio.h>
    
    int  max(int x, int y);	// 函数声明
    int main()
    {
    	int a, b, c;
    	a = 45, b = 27, c = 0;
    	c = max(a, b);	// 函数调用后: 45 > 27     z = 45
    	printf("%d\n", c);
    }
    int  max(int x, int y)
    {
    	int z; 
    	if (x > y) 
    		z = x;    
    	else
    		z = y;    
    	return(z);
    }
    

    A)
    45

    B)
    27

    C)
    18

    D)
    72

    94.以下程序的输出结果为()。

    # include <stdio.h>
    
    main()
    { 
    	int a = 1, b = 2, c = 3, d = 4, e = 5;
    	printf("%d\n", func((a + b, b + c, c + a), (d + e)));
    	// func((a + b, b + c, c + a) 逗号表达式 x = c + a = 4;
    }
    
    int  func(int  x, int y)
    {
    	return(x + y);
    }
    

    A)
    15

    B)
    13

    C)
    9

    D)
    函数调用出错

    95.下列定义不正确的是()。

    A)
    #define PI 3.141592

    B)
    #define S 345

    C)
    int max(int x,int y); { }

    函数定义后面不能有 ;

    D)
    static char c;

    96.下列程序运行结果为:

    # include <stdio.h>
    #define  P  3
    #define  S(a)  P*a*a
    
    int main()
    {
    	int  ar;
    
    	ar=S(3+5);
    	printf("\n%d",ar);
    
    }
    
    /*
    	在VS2019中运行结果为:29
    	过程为:宏定义直接替换 3*3+5*3+5 = 9+15+5 = 29
    */
    

    A)
    192

    B)
    29

    C)
    27

    D)
    25

    97.已知p,p1为整型指针变量,a为整型数组名,j为整型变量,下列赋值语句中不正确的是()。

    A)
    p=&j,p=p1;

    B)
    p=a;

    C)
    p=&a[j];

    D)
    p=10;
    (p为地址)

    98.经过下列的语句 int j,a[10],*p=a;定义后,下列语句中合法的是()

    A)
    p=p+2;

    B)
    p=a[5]; (p = a[0];)

    C)
    p=a[2]+2;

    D)
    p=&(j+2);

    99.两个指针变量不可以()。

    A)
    相加

    B)
    比较

    C)
    相减

    D)
    指向同一地址

    100.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()。

    A)
    int p=&x;

    B)
    int *p=x;

    C)
    int *p=&x;

    D)
    *p=*x;

    101.关于指针概念说法不正确的是()。

    A)
    一个指针变量只能指向同一类型变量

    B)
    一个变量的地址称为该变量的指针

    C)
    只有同一类型变量的地址才能放到指向该类型变量的指针变量之中

    D)
    指针变量可以由整数赋值,不能用浮点数赋值

    102.设有说明int (*ptr)[M];其中标识符ptr是()

    A)
    M个指向整型变量的指针

    B)
    指向M个整型变量的函数指针

    C)
    一个指向具有M个整型元素的一维数组的指针

    D)
    具有M个指针元素的一维指针数组,每个元素都只能指向整型量

    103.设char a[5],*p=a;,下面选择中正确的赋值语句是()。\

    A)
    p=“abcd”;

    B)
    a=“abcd”;

    C)
    *p=“abcd”;

    D)
    *a=“abcd”;

    104.具有相同类型的指针变量p与数组a,不能进行的操作是()

    A)
    p=a;

    B)
    *p=a[0];

    C)
    p=&a[0];

    D)
    p=&a;

    105.若有下列定义,则对a数组元素地址的正确引用是()。 int a[5],*p=a;\

    A)
    &a[5]

    B)
    p+2

    C)
    a++

    D)
    &a

    106.若有下列定义和语句,则对a数组元素的非法引用是()。 int a[2][3], (*pt)[3]; pt=a;\

    A)
    pt[0][0]

    B)
    *(pt+1)[2]

    C)
    *(pt[1]+2)

    D)
    *(a[0]+2)

    107.以下程序段的输出结果是()。char *alp[]={“ABC”,“DEF”,“GHI”}; int j; puts(alp[1]);
    D

    A)
    A

    B)
    B

    C)
    D

    D)
    DEF

    8
    108

    设有以下语句, 若0<k<4,下列选项中对字符串的非法引用是()。 char str[4][2]={“aaa”,“bbb”,“ccc”,“ddd”},*strp[4]; int j; for (j=0;j<4;j++) strp[j]=str[j];
    A

    A)
    strp

    B)
    str[k]

    C)
    strp[k]

    D)
    *strp

    8
    109

    若有int a[][2]={{1,2},{3,4}}; 则*(a+1),*(*a+1)的含义分别为()。
    B

    A)
    非法,2

    B)
    &a[1][0],2

    C)
    &a[0][1],3

    D)
    a[0][0],4

    8
    110

    若有定义:char *p1,*p2,*p3,*p4,ch; 则不能正确赋值的程序语句为()。
    C

    A)
    p1=&ch; scanf("%c",p1);

    B)
    p2=(char *)malloc(1);scanf("%c",p2);

    C)
    *p3=getchar();

    D)
    p4=&ch;*p4=getchar();

    9
    111

    当定义一个结构体变量时,系统分配给它的内存是()。
    A

    A)
    各成员所需内存量的总和

    B)
    结构中第一个成员所需内存量

    C)
    结构中最后一个成员所需内存量

    D)
    成员中占内存量最大者所需的容量

    9
    112

    设有如下定义: struct sk {int a; float b;} data,*p; 若要使p指向data中的a域,正确的赋值语句是()。
    A

    A)
    p=(struct sk*)&data.a;

    B)
    p=(struct sk*) data.a;

    C)
    p=&data.a;

    D)
    *p=data.a;

    11
    113

    以下对枚举类型名的定义中正确的是()。
    B

    A)
    enum a={sum,mon,tue};

    B)
    enum a {sum=9,mon=-1,tue};

    C)
    enum a={“sum”,“mon”,“tue”};

    D)
    enum a {“sum”,“mon”,“tue”};

    11
    114

    在下列程序段中,枚举变量c1,c2的值依次是()。 enum color {red,yellow,blue=4,green,white} c1,c2; c1=yellow;c2=white; printf("%d,%d\n",c1,c2);
    A

    A)
    1,6

    B)
    2,5

    C)
    1,4

    D)
    2,6

    8
    115

    变量p为指针变量,若p=&a,下列说法不正确的是()。
    D

    A)
    &*p==&a

    B)
    *&a==a

    C)
    (*p)++==a++

    D)
    *(p++)==a++

    8
    116

    以下程序的输出结果是()。 main() { char s[]=“123”,*p; p=s; printf("%c%c%c\n",*p++,*p++,*p++); }
    B

    A)
    123

    B)
    321

    C)
    213

    D)
    312

    8
    117

    执行下列语句后的结果为()。 int x=3,y; int *px=&x; y=*px++;
    B

    A)
    x=3,y=4

    B)
    x=3,y=3

    C)
    x=4,y=4

    D)
    x=3,y不知

    2
    118

    下列各m的值中,能使m%32&&m%53&&m%7==2为真的是()。
    B

    A)
    8

    B)
    23

    C)
    17

    D)
    6

    11
    119

    若有以下程序段:int a=3,b=4; a=ab;b=ba;a=a^b;则执行以上 语句后,a和b的值分别是()。
    B

    A)
    a=3,b=4

    B)
    a=4,b=3

    C)
    a=4,b=4

    D)
    a=3,b=3

    11
    120

    在位运算中,操作数每右移一位,其结果相当于()。
    B

    A)
    操作数乘以2

    B)
    操作数除以2

    C)
    操作数乘以16

    D)
    操作数除以16

    展开全文
  • leetcode 整数反转

    2020-10-29 15:59:14
    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 ...使用数学方法解题,假设对于一个数x值为523进行反转,思路是先定义一个rev=0的整型变量,再: 1 )取其余数

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

    示例 1:

    输入: 123
    输出: 321
    示例 2:

    输入: -123
    输出: -321
    示例 3:

    输入: 120
    输出: 21

    注意:
    假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2 ^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

    解题思路:

    1. 反转的思路
      使用数学方法解题,假设对于一个数x值为523进行反转,思路是先定义一个rev=0的整型变量,再:
      1 )取其余数存储在一个pop变量中
      2) 将x除以10得到新的x值.
      3) rev = rev * 10 + pop
      重复1)2)步骤,直至x的值等于0.
      演示:
      第一次循环:1)pop = 3   2)x = 52   3)3
      第二次循环:1)pop = 2   2)x = 5   3)32
      第三次循环:1)pop = 5   2)x = 0   3) 325
      停止循环。
    2. 溢出判断的思路
      由于题目要求数值范围为[-2^31, 2 ^31 - 1],即int(4个字节)的取值范围。
      从反转的思路中可以看出会产生溢出的步骤是第3)步,所以在该步骤需加上判断语句。
      假设rev为正数,如果会溢出,那么一定有 rev >= INT_MAX/10 ,则
      1) rev > INT_MAX/10 时,那么rev = rev * 10 + pop 一定会溢出
      2) rev == INT_MAX/10 时,只要pop > 7,那么rev = rev * 10 + pop 一定会溢出。(这里>7的原因是INT_MAX的个位数是7)
      假设rev为负数,如果会溢出,那么一定有 rev <= INT_MIN/10,则
      1) rev < INT_MIN/10 时,那么rev = rev * 10 + pop 一定溢出
      2)rev == INT_MIN/10 时,只要 pop < -8那么rev = rev * 10 + pop 一定溢出。(这里<-8的原因是INT_MIN的个位数是8,且余数是负数)
      (负数取余的例子:-128 % 10 = -8 -128 / 10 = -12,所以如果rev小于-12,那么rev10+pop一定小于-128,如果rev等于-12,只要pop<-8,那么rev10+pop一定小于-128)
    3. 如何判断INT_MAX 和 INT_MIN个位数是多少?
      下面是计算2^31个位数的方法:
      在这里插入图片描述

    代码:

    class Solution {
    public:
        int reverse(int x) {
            int rev = 0;		// 存储反转数的变量
            while(x != 0){		
                int pop = x % 10;
                x /= 10;
                if (rev > INT_MAX / 10 || rev == INT_MAX && pop > 7) return 0;		// 溢出判断
                if (rev < INT_MIN / 10 || rev == INT_MIN && pop < -8) return 0;
                rev = rev * 10 + pop;
            }
            return rev;
        }
    };
    

    时间复杂度:O(log(x)) (时间复杂度等比于x的位数,对于十进制x,其位数有log(x)位)
    空间复杂度:O(1)

    参考:

    1. https://leetcode-cn.com/problems/reverse-integer/solution/zheng-shu-fan-zhuan-by-leetcode/
    2. https://leetcode-cn.com/problems/reverse-integer/solution/hua-jie-suan-fa-7-zheng-shu-fan-zhuan-by-guanpengc/
    展开全文
  • /*p4是指向字符变量的指针变量*/ 应该注意的是,一个指针变量只能指向同类型的变量,如P3 只能指向浮点变量,不能时而指向一个浮点变量, 时而又指向一个字符变量。 指针变量的赋值  指针变量同普通变量一样,...
  • 为了增加程序的可读性,可把整型说明符用typedef定义为: typedef int INTEGER 这以后就可用INTEGER来代替int作整型变量的类型说明了。 例如: INTEGER a,b;它等效于: int a,b; 用typedef定义数组、指针、结构等...
  • 类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口,与外界发生关系,对象与对象之间通过消息进行通讯。这样,程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。...
  • 4.7 整型变量的定义 28 4.8 浮点型变量 29 4.9 常量 30 4.10 枚举型常量 30 第5章 if语句与逻辑运算符 32 5.1 语句的定义 32 5.2 块的定义 32 5.3 表达式的定义 33 5.4 运算符的定义 34 5.4.1 赋值运算符的...
  • EL表达式 (详解)

    2009-12-24 14:32:53
    在EL中,这四个隐含对象只能用来取得范围属性值,即getAttribute(String name),却不能取得 其他相关信息。 例如:我们要取得session中储存一个属性username的值,可以利用下列方法: session.getAttribute(...
  • 但是,算法仅仅给出了一个笼统的实现策略,对于具体的数据类型、运算操作符及优先级情况、怎样支持函数调用、自定义内存变量如何实现等具体问题并无现成的解决方案,需要开发人员自己实际设计相应的算法解决,而这也...
  • 经过跟踪变量值发现循环变量i的阀值pSysHead->dbf_count的数值为0xFFFFFFFF,该值是从被破坏的内存数据库中获取的,正常情况下该值小于127。而pDBFat是数据库的起始地址,如果pSysHead->dbf_count值异常过大,将...
  • c# 加密和解密相关代码

    热门讨论 2011-09-06 11:04:59
    说明:本实例只是简单地使用了“异或”运算符计算两个整型数值以达到加密的目的,所以本实例只可以 对整型数值进行加密运算,并不适合其他数据的加密。 设 计过程 (1)打开Visual Studio 2008 开发环境,新建一个...
  • Java SE 6.0编程指南 源码

    热门讨论 2012-05-18 13:40:45
    对于初学者,这上面的例子浅显易懂,而且涉及到 java 的方方面面的知识,比较适合全面初窥java 的人。这个资源 CSDN上已经有了,但是要很多积分,呵呵,所以我在重新传递一下。 同时我把目录页提供上来,本书的实例...
  • Visual C++ 2005 入门经典 详细书签版

    热门讨论 2013-02-02 16:39:43
    2.3.1 整型变量 45 2.3.2 字符数据类型 46 2.3.3 整型修饰符 47 2.3.4 布尔类型 48 2.3.5 浮点类型 48 2.3.6 ISO/ANSI C++中的基本类型 49 2.3.7 字面值 50 2.3.8 定义数据类型的同义词 50 2.3.9 ...
  • 2.3.1 整型变量 45 2.3.2 字符数据类型 46 2.3.3 整型修饰符 47 2.3.4 布尔类型 48 2.3.5 浮点类型 48 2.3.6 ISO/ANSI C++中的基本类型 49 2.3.7 字面值 50 2.3.8 定义数据类型的同义词 50 2.3.9 ...
  • C#数据结构

    2013-12-10 11:49:54
    义,并且对于相同的输入只能有相同的输出。 3、输入(Input):一个算法具有零个或多个输入。它即是在算法开始之前给出的 数据结构(C#语言版) 1.2 算法5 量。这些输入是某数据结构中的数据对象。 4、 输出(Output)...
  • 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 存储类型 1.10 同一个静态(static)函数或变量的所有声明都必需包含static存储类型吗? 1.11 extern在函数声明中是什么意思? ...
  • 字符串是 Unicode 字符序列 8 位有符号整型 16 位有符号整型 32 位有符号整型 64 位有符号整型 示例 object o = null; 范围 string sbyte short int long string s = "hello"; sbyte val = 12; short val = 12; int...
  • 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 5 存储类型 6 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 6 1.11 extern在函数声明中是什么...
  • 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量?  存储类型 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗?  1.11 extern在函数声明中是什么意思?...
  •  1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 存储类型 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 1.11 extern在函数声明中是什么意思?...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 5 存储类型 6 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 6 1.11 extern在函数声明中是什么...
  • 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 34 存储类型 35 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 35 1.11 extern在函数声明中是什么...
  • 数据结构(C++)有关练习题

    热门讨论 2008-01-02 11:27:18
    9、 已知f为单链表的表头指针,链表中存储的都是整型数据,试写出实现下列运算的递归算法: a. 求链表中的最大整数; b. 求链表的结点个数; c. 求所有整数的平均数; 告要求: 写出能运行的完整...
  • powerbuilder

    2013-11-21 17:11:48
    由于PowerBuilder使用数值0(即ASCII码为0的字符)结束每个字符串,因此,如果打印控制序列中包含了数值0,应用程序需要使用其它字符在参数string中替代数值0,并用zerochar参数指明这个替代字符。一般来说,应该...
  • 《数据结构 1800题》

    热门讨论 2012-12-27 16:52:03
    2. 对于给定的 n个元素,可以构造出的逻辑结构有 (1)集合 , (2)线性结构 , (3)树型结构 ,_图状结构_(4)_四种。 【中科院计算所 1999 二、1(4分)】 3.数据的逻辑结构是指(数据的组织形式,即数据元素...

空空如也

空空如也

1 2
收藏数 27
精华内容 10
关键字:

对于整型变量只能输入整型数值