zoukankan      html  css  js  c++  java
  • c笔试题

    以下程序的输出是()。 

    struct st { int x; int *y; } *p;
    int dt[4] = { 10,20,30,40 };
    struct st aa[4] = { 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0] };
    void main()
    {
        p = aa;
        printf("%d
    ", ++(p->x));
    }

    A、10

    B、11

    C、51

    D、60

    答案:C

    分析:aa是大小为4的结构体数组,p是一指向该结构体的指针,将数组名aa赋给

    p,p将指向数组aa的第一个元素aa[0],p->x其实就是利用指针p来引用aa[0]的成员x,

    其值为50,加1后输出的结果为51.故正确答案是C


     以下程序的输出是多少?

    main() {
        int a[3] = { 0,1,2 };
        int *p;
        int *q;
        p = a;
        q = &a[2];
        printf("%d", a[q-p]);
        return 0;
    }

    A、0

    B、1

    C、2

    D、未知

    答案:C

    分析: 这里q-p的实际运算是:(q的地址值-p的地址值)/sizeof(int),所以为2。


     若有定义语句:char s[3][10],(*k)[3],*p;则以下赋值语句错误的是()

    1.p=s; 
    2.p=k;
    3.p=s[0]; 
    4.k=s;

    A、124

    B、1234

    C、12

    D、234

    答案:A

    分析:这道题主要就考指针类型是否一样。
    char s[3][10]   s 是数组指针,类型为char (*)[3],所指向的每个数组长度为10;
    char (*k)[3]     很明显k就是一个数组指针,类型也为 char (*)[3],但是所指向的每个数组的长度未知;
    char *p           类型为char * 指针。
    因此,在没有强制类型转换的情况下,只有类型完全相同的指针才能相互复制。
    答案:1,2,4

     用 C 语言编写的源程序须经过编译连接后,生成扩展名为 .exe 的可执行文件,才能运行。

    A、正确

    B、错误

    答案:B

    分析:只有在windows环境下c源程序编译后才会生成.exe的可执行文件,Linux下生成的不是EXE文件。


     给定一个数组int arr[] = {3,8,3,9,9,7,7},筛选出其中没有重复的一个数。

    方法一、先定义一个动态数组将重复的数据放入动态数组中,然后将原数组与动态数组进行比较,最后筛选出没有重复的数字。

    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
    	int arr[] = { 3,8,3,9,9,7,7 };//给定的数组
    	int	len = sizeof(arr) / sizeof(arr[0]);//得到数组长度
    	int value_arr[sizeof(arr) / sizeof(arr[0])];//放置重复数据的数组
    	//将重复结果放在数组中
    	int index = 0;
    	for (int i = 0; i < len; i++)
    	{
    		for (int j = i + 1; j < len; j++)
    		{
    			bool flag = false;
    			for (int z = 0; z < len; z++)
    			{
    				if (arr[i] == value_arr[z]) {
    					flag = true;
    					break;
    				}
    			}
    			if (arr[i] == arr[j] && !flag)
    			{
    				value_arr[index++] = arr[i];
    				break;
    			}
    		}
    	}
    	//筛选没有重复的数据
    	for (int i = 0; i < len; i++)
    	{
    		bool flag = false;
    		for (int j = 0; j < len; j++) {
    			if (arr[i] == value_arr[j])
    			{
    				flag = true;
    				break;
    			}
    		}
    		if (!flag)
    		{
    			printf("%d
    ", arr[i]);
    		}
    	}
    	system("PAUSE");
    	return 0;
    }
    

      

    方法二、将原数组进行排序,若有重复数据数据则从重复数据之后进行遍历。

    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
    	int arr[] = { 3,8,3,9,9,7,7 };//给定的数组
    	int	len = sizeof(arr) / sizeof(arr[0]);//得到数组长度
    	//先给数组进行排序
    	for (int i = 0; i < len; i++)
    	{
    		for (int j = i + 1; j < len; j++)
    		{
    			//升序
    			if (arr[i] > arr[j])
    			{
    				int temp = arr[i];
    				arr[i] = arr[j];
    				arr[j] = temp;
    			}
    		}
    	}
    	//筛选没有重复的数据
    	for (int i = 0; i < len; i++)
    	{
    		if (i != 0 && i != len - 1 && len > 1) {
    			if (arr[i] != arr[i - 1] && arr[i] != arr[i + 1]) {
    				printf("%d
    ", arr[i]);
    			}
    		}
    		else if (len == 1)
    		{
    			printf("%d
    ", arr[0]);
    		}
    		else
    		{
    			if (i == 0 && arr[0] != arr[1]) {
    				printf("%d
    ", arr[0]);
    			}
    			if (i == len - 1 && arr[len - 2] != arr[len - 1]) {
    				printf("%d
    ", arr[len - 1]);
    			}
    		}
    	}
    	system("PAUSE");
    	return 0;
    }
    

      


    >
    作者:豌豆果果
    出处:https://www.cnblogs.com/hylogs/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    觉得有所帮助,可以请果果喝咖啡哟^_^!

  • 相关阅读:
    Keras分类问题
    Keras预测股票
    Tensflow预测股票实例
    estimator = KerasClassifier
    keras CNN解读
    Windows下Python安装: requires numpy+mkl 和ImportError: cannot import name NUMPY_MKL
    Tensorflow RNN_LSTM实例
    同时安装python2.7和python3.5
    oracle 杀掉当前用户的进程
    IMP导入时的错误以及解决办法
  • 原文地址:https://www.cnblogs.com/hylogs/p/11801719.html
Copyright © 2011-2022 走看看